-128二进制形式是啥 为啥

如题所述

#include<stdio.h>
int main()
{
int i=-128;
printf("%x\n",i);//128:0000 0000 0000 0000 0000 0000 1000 0000 ,补码:1)符号位置1,各位取反:1111 1111 1111 1111 1111 1111 0111 1111 ,2)末位加1: 1111 1111 1111 1111 1111 1111 1000 0000,换成16进制也就是ffff80
//同理
i=-1;
printf("%x",i);
return 0;
}

这里int是4字节的,即sizeof(int)==4

参考资料:http://baike.baidu.com/view/377340.html?wtp=tt

温馨提示:内容为网友见解,仅供参考
第1个回答  2010-08-04
127 ——0111 1111
-128 ——1000 0000

记住吧,127+1=-128,这叫溢出
第2个回答  2010-08-04
那要是int型的就不溢出了啊。。。-128就是~127按位反
第3个回答  2010-08-04
看你的-128是用哪种范围的:
一个字节:10000000
二个字节:1111111110000000
四个字节:11111111111111111111111110000000

-128的二进制是多少?
所以-128的补码=256-|-128|=128=80H 方法二:直接由原码求补码 (1)正数的原码=补码 (2)负数:先写出负数绝对值的原码,再求反加一 所以—128的绝对值的原码为80H,求反为0111 1111,再加一为1000 0000,就是80H

-128的二进制是多少?是10000000还是11111111
除2取余倒序排列,推出128=10000000,128的二进制是128的二进制取反加1,所以128的二进制为10000000。二进制的计算方法:1.加法 0+0=0 0+1=1 1+0=1 1+1=10 0 进位为1 2.乘法 0×0=0 1×0=0 0×1=0 1×1=1 3.减法 0-0=0 1-0=1 1-1=0 0-1=1 4.除法 0÷1=0 1...

-128的二进制补码是怎么得来的?
补码10000000唯一的表示-128是一个规定,不需要推算,理由如下:现在来推-128的补码:-128的补码:10000000 - 10000000(+128没有符号位)=10000000 -128的反码:1111 1111(1000 0000 +1=1000 0000+1111 1111=1111 1111)-128的原码:10000000(反码取反)往回推:-128的原码 10000000 (-128,进位被...

-128的二进制原码、反码、补码各是多少
-128的八位二进制原码是110000000。反码是101111111,补码是110000000。十进制转换为二进制,-128=-(1*2^7) =110000000。负数原码的反码是10000000的按位取反,即01111111,加上符号位为101111111。负数原码的补码是负数原码的反码加1,即01111111+1 = 10000000,加上符号位为110000000。

请高手解释一下为什么-128用二进制表示为1000000000000000?_百...
-128的8位补码是:1000 0000B,换算成十进制就是 128。负数的补码,是用“模”计算出来的,即:[X]补 = 256 - |X| = 256- |-128| = 128。不要用“求反加一”来算,那只不过是一个经验公式而已。

负128转换为二进制,请写出变化过程。
128的二进制编码为10000000B,如果转换结果是8位二进制数 则补码表示的-128的换算为:10000000B取反:01111111,加1:10000000 -128D的二进制补码表示为10000000

关于-128的原码(2进制)
补码是数据在内存的储存形式 要求-128的原码,只需把+128的原码的最高位(符号位)更改就可:+128的原码:[00000000][10000000]-128的原码:[10000000][10000000]由码码求补码:除符号位外,其它全取反再加1 所以,求负数的二进制补码至少有上述两种:1.取绝对值,求绝对值二进码,全部取反再加一 ...

若采用8位二进制补码表示十进制整数-128.则其表示形式为?
1111;-2即1000 0010(理解为-1的数字位加了1成了10)取反后为1111 1101再加1得补码为1111 1110;依次类推...-127即1111 1111取反即1000 0000再加1得补码为1000 0001 -128即1000 0000(同理可以理解为数字位加1成了000 0000)取反后为1111 1111再加1得补码1000 0000 ...

-128二进制形式是啥 为啥
int main(){ int i=-128;printf("%x\\n",i);\/\/128:0000 0000 0000 0000 0000 0000 1000 0000 ,补码:1)符号位置1,各位取反:1111 1111 1111 1111 1111 1111 0111 1111 ,2)末位加1: 1111 1111 1111 1111 1111 1111 1000 0000,换成16进制也就是ffff80 \/\/同理 i=-1;printf("%x...

为什么-128二进制表示是80H不是81H
-128的十六进制表示为FF80H,其十六进制表示为11111110000000,带符号的数字由补码表示,定义补码是为了便于运算。二进制是一种广泛应用于计算技术的数字系统。二进制数据是由数字0和1表示的数字。它的基数是2,进位规则是每2进1,借位规则是2进1。二进制的优点和缺点是显而易见的。它的优点是只有两个...

相似回答