c语言int计算,(C语言)char类型与int类型相加

1 #include

2

3 int main(void) {4 char a = 127;5 int b = 4;6 int c = a +b;7 a +=b;8 printf("c=%d",c);9 //printf("c=%s",c);

10 printf("a=%d",a);11 //printf("a=%c",a);12 //printf("a=%s",a);13 //your code goes here

14 return 0;15 }

结果c=131 a=-125

char类型是1 byte = 8 bits

正数的原码,补码,反码都相同,都等于它本身

负数的补码是:符号位为1,其余各位求反,末位加1

反码是:符号位为1,其余各位求反,但末位不加1

在计算机中,数据是以补码的形式存储的

补码 0111 1111 + 0000 0100

= 1000 00011

补码 = 1111 11101 = - (127-2)= -125

int c = a + b;

a 和 b直接转换为int类型相加!

printf("c=%s",c);

此句发生错误。

类型之间计算时候转换的规则

double

long

unsigned

int

↑表示运算两边类型不一致时的转换顺序、

整型提升

整型提升是C程序设计语言中的一项规定:在表达式计算时,各种整形首先要提升为int类型,如果int类型不足以表示则要提升为unsigned int类型;然后执行表达式的运算。

http://blog.csdn.net/dyllove98/article/details/9004872

原文:http://www.cnblogs.com/tanshuai1001/p/4931941.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值