整形提升-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

相关推荐
Chenyu_3101 小时前
12.找到字符串中所有字母异位词
c语言·数据结构·算法·哈希算法
门前云梦3 小时前
《C语言·源初法典》---C语言基础(上)
c语言·开发语言·学习
SY师弟4 小时前
51单片机——计分器
c语言·c++·单片机·嵌入式硬件·51单片机·嵌入式
keepquietl5 小时前
MQTT示例体验(C)
c语言·开发语言
Wangshanjie_986 小时前
【C语言】-递归
c语言
CodeWithMe9 小时前
【C/C++】高效的位操作
c语言·c++
学习噢学个屁10 小时前
基于STM32物联网智能鱼缸智能家居系统
c语言·stm32·单片机·嵌入式硬件·物联网·智能家居
啊我不会诶13 小时前
篮球杯软件赛国赛C/C++ 大学 B 组补题
c语言·c++
laocooon52385788617 小时前
win操作系统安装C++语言开发环境之一, vscode +MinGW ,流程
c语言