有符号的整数-负数在内存的存放形式
2014-03-05 09:52
211 查看
本文摘自:http://blog.csdn.net/jiangdf/article/details/8711151
有符号整数,正数的表示区间为:0x00000000-0x7FFFFFFF;负数的表示区间:0x80000000-0xFFFFFFFF。
负数在内存中都是以补码的形式存放,补码的规则是用0减去这个数的绝对值。也可以表示为对这个数取反加1;
为什么补码是对这个数取反加1呢?因为,X+X(反)=0xFFFFFFFF,于是X+X(反)+1=0,所以可以推导出0-X=X(反)+1;
计算机只会做加法,计算机把减法都转化为加法:
例如:3-2会转化为3+(-2);-2的补码为0xFFFFFFFE。0x00000011+0xFFFFFFFE=0x100000001; 存储的范围为4字节大小。
超出的1将被舍弃,结果为0x00000001。
有符号整数,正数的表示区间为:0x00000000-0x7FFFFFFF;负数的表示区间:0x80000000-0xFFFFFFFF。
负数在内存中都是以补码的形式存放,补码的规则是用0减去这个数的绝对值。也可以表示为对这个数取反加1;
为什么补码是对这个数取反加1呢?因为,X+X(反)=0xFFFFFFFF,于是X+X(反)+1=0,所以可以推导出0-X=X(反)+1;
计算机只会做加法,计算机把减法都转化为加法:
例如:3-2会转化为3+(-2);-2的补码为0xFFFFFFFE。0x00000011+0xFFFFFFFE=0x100000001; 存储的范围为4字节大小。
超出的1将被舍弃,结果为0x00000001。
相关文章推荐
- 有符号的整数-负数在内存的存放形式
- 有符号的整数-负数在内存的存放形式
- 有符号数在内存中是以其补码的形式存在的【如何求一个负数的补码】
- 数据在内存中存放的形式
- 关于数组在内存中的存放形式
- 判断一无符号整数的二进制形式中是否包含偶数个1
- (转载)对内存数据存放形式的很好的说明
- 7.14 将例7.13以二进制形式存放在磁盘文件中的数据读入内存,并在显示器上显示。
- (转载)对内存数据存放形式的很好的说明
- 判断一无符号整数的二进制形式中是否包含偶数个1
- 将32位无符号整数表示的时间信号转化为习惯的形式
- 输入一个整数,将这个整数以字符串的形式逆序输出 程序不考虑负数的情况,若数字含有0,则逆序形式也含有0,如输入为100,则输出为001
- 判断无符号整数的二进制形式中是否包含偶数个1
- float 变量在内存当中的存放形式
- 链式A+B有两个用链表表示的整数,每个结点包含一个数位。这些数位是反向存放的,也就是个位排在链表的首部。编写函数对这两个整数求和,并用链表形式返回结果。 给定两个链表ListNode* A,ListN
- 各类数据在内存中的存放形式的问题
- 将16位无符号整数转化为BCD码存放在数组中
- 整数在内存中的存储形式。。
- 汇编:从9个有符号数中找出最小数,并将最小数与负数的个数以十进制的形式显示到屏幕上
- 数据在内存中始终是以二进制形式存放的。数值是以补码表示的