操作字符--跟着鹏哥,学习C语言打卡第一天!!

这篇博客介绍了C语言中整型提升的概念,详细解释了在表达式求值过程中,char和short类型如何提升为int类型。内容包括负数和正数整型提升的示例,以及鹏哥的经典实例,帮助理解表达式中的数据类型转换。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

操作字符

----表达式求值----隐式类型之整型提升

今天学到的整形提升,在任何发生表达式里都会发生的整型提升

因为CPU内整型运算器(ALU)的操作数的字节长度 ,通用的寄存器长度是int,所以会发生提升数据类型到int(整型)

char(一字节)、short(两字节)

比如 char a=1;

像这些都是表达式+a、-a(单目操作符)、a==1也算表达式求值,所以会提升数据类型(除了!a逻辑取反和<>)

有符号的数据类型char

整型提升还分为   负数整型提升  和  正数整型提升

比如 负数整型提升  

char a=-3;

(原码)10000011

(反码)11111100(原码符号位不变,其他相反)

(补码)11111101(反码+1)

-a

(原码)00000000000000000000000000000011

(补码)00000000000000000000000000000011(正数的补码就是原码)

正数整型提升

char a=3;

(原码)00000011

(补码)00000011(正数的补码就是原码)

接下来就是计算

鹏哥这道实例超级经典

我的理解因为sizeof计算的是b这个变量的数据内存,所以这个变量空间不会改变

而第二个是一个表达式整型提升的体现

 

鹏哥这道实例很经典
char a = 0xb6 ;
short b = 0xb600 ;
int c = 0xb6000000 ;
if ( a == 0xb6 )
printf ( "a" );
if ( b == 0xb600 )
printf ( "b" );
if ( c == 0xb6000000 )
printf ( "c" );

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值