我刚初学,看到整型数据这块的补码,不能理解。
整型数据在内存中的存放形式
如果定义了一个整型变量i: int i;
i=10;
数值是以补码表示的:
正数的补码和原码相同;
负数的补码:将该数的绝对值的二进制形式按位取反再加1。
例如:求-10的补码:
由此可知,左面的第一位是表示符号的。
各种无符号整型数据所占的内存空间字节数与相应的有符号类型量相同。但由于省去了符号位,故不能表示负数。
以13为例:
http://see.xidian.edu.cn/cpp/html/20.html(文字出处)
在C语言中补码什么意思?
答案:2 悬赏:80 手机版
解决时间 2021-01-31 04:54
- 提问者网友:温柔港
- 2021-01-30 08:22
最佳答案
- 五星知识达人网友:躲不过心动
- 2021-01-30 08:40
补码是负整数的一种编码规则,比如8位二进制表示的-1为11111111。本规则遵循的原则很简单,就是加一个与它对应的正整数后,通过自动进位丢弃进位位后的结果是0,比如11111111+1=1 00000000,其中进位1被丢弃,结果是0。补码规则中的正数的补码是自身,这样计算机中的整数就都是用补码表示的了。求补码的方法很多,其中常见的是所谓“反码+1"法,即把负整数对应的正整数的二进制编码的各位取反,再加正整数1,而字长的最高位固定置1而得到这个负数的补码。
全部回答
- 1楼网友:由着我着迷
- 2021-01-30 10:04
例如一个数字转换为1跟0以后为 一、原码
求原码:X≥0,则符号位为0,其余照抄;
X≤0,则符号位为1,其余照抄。
【例1】X=+1001001 [X]原 = 01001001
【例2】X=-1001001 [X]原 = 11001001
二、反码
求反码:若X≥0,符号位为0,其余照抄;
若X≤0,符号位为1,其余按位取反。
【例3】X=+1001001 [X]反 = 01001001
【例4】X=-1001001 [X]反 = 10110110
三、补码
求补码:若X≥0,符号位为0,其余照抄;
若X≤0,符号位为1,其余取反后,最低位加1。
【例5】X=+1001001 [X]补 = 01001001
【例6】X=-1001001 [X]补 = 10110
我要举报
如以上问答信息为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
推荐资讯