无符号型与有符号性的加法区别

 只说最精华的:

1. 整数在内存中是以补码得形式存储的 (补充说明一下:为什么补码? 计算机只有0和1,-5这个数怎么存,计算机中可没有“-”,需要用0和1来表示符号)
2. 计算机中的加、减法运算本质上都是二进制的加法

3. 有符号型和无符号型变量的区别在于二进制首位是否作为符号位:有符号型,首位最为符号位,0表示正,1表示负; 无符号型,首位和其他位一样作为数字位。

4. C语言中,变量赋值时存在“位截取”,如char c = 0xffff1234; 在赋值时,是截取最后8bit二进制数,即 c= 0x34

 

下面贴一段代码,验证一下,就全明白了:

		unsigned char tt1 = 0xff;
		unsigned char tt2 = 5;
		unsigned char sum = tt1+tt2;
		printf("\n%d\t%x\n%d\t%x\n", sum, sum, tt1+tt2, tt1+tt2);

 

结果显示:

        4       4

        260   104

 

总结一句话:

计算机的世界,一切都是0和1;永远只有加法,没有减法!

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值