C语言中为什么用补码表示负数,而不是直接在正数的前面加1呢

来源:学生作业帮助网 编辑:作业帮 时间:2024/04/30 05:29:17

C语言中为什么用补码表示负数,而不是直接在正数的前面加1呢
C语言中为什么用补码表示负数,而不是直接在正数的前面加1呢

C语言中为什么用补码表示负数,而不是直接在正数的前面加1呢
因为一个字节是八位的.我们总是利用最高位表示符号位,正数的补码是本身
举个例子,若正数0111,1111
按照你的意思,直接加1
不就变成10111,1111了嘛
还有,补码表示负数是因为计算机中的加减运算,对负数都是通过补码来运算的,通过补码的加减,得到的补码再反过来求出对应的负数,计算机中的计算只有0和1
不可能在数字前加正负号,所以负数必须用补码

什么叫“直接在正数的前面加1”呢?计算机中表示数不像咱平时数学里负数的话就在那个对应的正数前加个负号。
在计算机中数用补码表示主要是因为,如果用原码表示的话,0就有两种表示了,10000000和00000000(因为0可以写成-0和+0),这样在计算机中是不可以的,要一一对应才好,所以就采用补码来表示,即原码按位取反在加一,负号位不变。...

全部展开

什么叫“直接在正数的前面加1”呢?计算机中表示数不像咱平时数学里负数的话就在那个对应的正数前加个负号。
在计算机中数用补码表示主要是因为,如果用原码表示的话,0就有两种表示了,10000000和00000000(因为0可以写成-0和+0),这样在计算机中是不可以的,要一一对应才好,所以就采用补码来表示,即原码按位取反在加一,负号位不变。

收起

C语言中为什么用补码表示负数,而不是直接在正数的前面加1呢 C语言中 负数在内存中为什么要以补码形式存储? 计算机中,负数为什么用补码表示请就你的理解,讲一个简单的例子, 原码、反码、补码,计算机中负数的表示? C语言正负数的存储形式是不是正数以源码形式存储,负数以补码形式储存?还有十六进制数八进数是不是不可以是负数的?(我说是在C语言中) C语言中 负数0负数原码为1000000000000000的补码问题上面的原码的补码,求时原码1000000000000000 除符号位1取反1111111111111111 然后加1 不就变成 10000000000000000 不跟正数0的 为什么负数取补码啊 C语言中a[i].什么情况下要用这样的表示?为什么加点啊还加score 直接用a[i]表示不就行啦. C语言位向量怎么表示负数 C语言 整数的补码中1的个数 VB等语言中怎么表示负数 VB等语言中怎么表示负数 为什么int是从-32768到32767而不是从-32767到32767呢?有人的回答是这样的,我最后一块句话没看懂计算机用二进制表示负数是用的“补码法”,做法是正数按原码,负数用其相反数的反码加一.这种结 二进制负数的补码的原理 为什么要用补码的形式改更负数如何掌握它的用法? 负数的原码、反码、补码、移码的计算规则是什么?在计算机组成原理中,正是用0表示,负用1来表示的吗?例如:设寄存器内容为10000000,若它等于0,则其编码为(D)A原码 B补码 C反码 D移码请 单片机原理及应用中.补码是怎样表示负数的?应该怎样回答? 计算机中,表示地址时,用的是补码还是无符号码码?为什么呢? c语言、是已知一个负数的补码然后求原码该负数补码为a=1111 1111 1111 1101a=-[2^16-(a的补码)]2^16是换算成16位2进制来算还是什么!