整形提升-C语言

整型提升的原则:当一个小字节数,向大字节数转换时,有符号补0或1,无符号补0;

为什么会发生测试结果呢,让我们来看一下

在64位的环境中char是1个字节8位

char a=1;

1000 0001 原码 整形提升 11111111 11111111 11111111 11111111 补

1111 1110 反码 10000000 00000000 0000000 0000000 反码

1111 1111 补码 请看右边 10000000 00000000 0000000 0000001 原码

计算机中存的是补码(计算机识别):转换时要化为源码(人类识别) 结果为-1;

unsigned char b=-1;

1000 0001 源码 整形提升 00000000 00000000 00000000 11111111 补码

1111 1110 反码 00000000 00000000 00000000 11111111 反码

1111 1111 补码 00000000 00000000 00000000 11111111 原码

2^8-1=255;(原反补相同)

32位 64位

char 1 1

short 2 4

指针 4 8

int 4 4

double 8 8

float 4 4

long 4 8

longlong 8 8

相关推荐
SundayBear12 分钟前
嵌入式进阶:C语言内联汇编
c语言·开发语言·汇编
小龙报3 小时前
《算法通关指南---C++编程篇(2)》
c语言·开发语言·数据结构·c++·程序人生·算法·学习方法
C++ 老炮儿的技术栈5 小时前
include″″与includ<>的区别
c语言·开发语言·c++·算法·visual studio
小龙报6 小时前
《彻底理解C语言指针全攻略(6)-- qsort、sizeof和strlen》
c语言·开发语言·职场和发展·创业创新·学习方法·业界资讯·visual studio
无限进步_8 小时前
C语言文件操作全面解析:从基础概念到高级应用
c语言·开发语言·c++·后端·visual studio
_码力全开_8 小时前
P1005 [NOIP 2007 提高组] 矩阵取数游戏
java·c语言·c++·python·算法·矩阵·go
dllxhcjla9 小时前
07 标识符命名规则
c语言
杨福瑞10 小时前
C语言数据结构:算法复杂度(2)
c语言·开发语言·数据结构
DuHz10 小时前
C程序中的循环语句
c语言·嵌入式硬件·软件工程
一念&11 小时前
每日一个C语言知识:C 指针
c语言·开发语言