二进制补码:1000000000000000的真值是多少?

2024-12-02 21:13:44
推荐回答(3个)
回答1:

二进制补码:1000000000000000的真值,如果是定点小数的二进制补码,则为-1,如果是定点整数的二进制补码,则为-32768。

数有字长规定。如果是 4 字节整型, 最高位是符号位。正数的源码,反码,补码 是一样的。

负数才分 原码,反码,补码。计算机为了充分利用 内存能表达的 数据点,假定正0负0一样。数据具体范围 在 编译器 头文件 limits.h 中 有明确 规定。

 INT_MAX,INT_MIN。也可以打印出来看。int a=0x8000;printf("%d %u %x\n",a,a,a )。

扩展资料

[+0]原码=0000 0000,   [-0]原码=1000 0000。

[+0]反码=0000 0000,   [-0]反码=1111 1111。

[+0]补码=0000 0000,   [-0]补码=0000 0000   。

+0和-0的补码是一样的。即 0的补码只有一种表示。

这里解释一下[-0]补码是怎么得来的。

负数的补码就是反码整体加一。符号位上的进位舍弃。(所以,舍弃了符号位的补码的第一位是数值位,不是符号位,符号位舍弃了)

另外解释一下原码符号位和补码符号位的关系,补码的符号位不是保持原码的第一位不变,而是 符号位不变,[-0]反码的第一个1是符号位,尾数中的7个1是数值位,尾数加一后。

数值位产生了进位,1111 1111+1=1 0000 0000(计算补码的过程中,并不是先保证第一位不变,而是保证符号位不变,保证补码规则是反码整体加一)。

回答2:

1000000000000000:
如果是定点小数的二进制补码,则为-1
如果是定点整数的二进制补码,则为-32768
0000000100000001:
如果是定点小数的二进制补码,则为+0.007843017578125
如果是定点整数的二进制补码,则为+257
计算机只能识别0和1,使用的是二进制,而在日常生活中人们使用的是十进制,"正如亚里士多德早就指出的那样,今天十进制的广泛采用,只不过是我们绝大多数人生来具有10个手指头这个解剖学事实的结果。尽管在历史上手指计数(5,10进制)的实践要比二或三进制计数出现的晚。".为了能方便的与二进制转换,就使用了十六进制(2 4)和八进制1.数值有正负之分,计算机就用一个数的最高位存放符号(0为正,1为负).这就是机器数的原码了。

回答3:

1000000000000000:
如果是定点小数的二进制补码,则为-1
如果是定点整数的二进制补码,则为-32768
0000000100000001:
如果是定点小数的二进制补码,则为+0.007843017578125
如果是定点整数的二进制补码,则为+257