二进制如何表示负数啊

发布网友 发布时间:2022-03-29 09:47

我来回答

12个回答

热心网友 时间:2022-03-29 11:16

在二进制码中,采用最高位是符号位的方法来区分正负数,正数的符号位为0、负数的符号位为1。剩下的就是这个数的绝对值部分。通过将负数转为二进制原码,再求其原码的反码,最后求得的补码即负数的二进制表示结果。

比如整数-1。先取1的原码:00000000 00000000 00000000 00000001,得反码: 11111111 11111111 11111111 11111110,最后得补码: 11111111 11111111 11111111 11111111,即-1在计算机里用二进制表示结果。

扩展资料:

在计算机中,除了十进制是有符号的外,其它如二进制、八进制、16进制都是无符号的。补码中正数与原码正数表示一样。补码中负数是采用2的补数来表示的,即把负数先加上2.以便将正数与负数的相加转化为正数与正数相加,从而克服原码表示法做加减法的困难。

由于负数的补码是2一|x|,故求负数的补码时,实际上要做一次减法,这是不希望的。可以发现,只要将原码正数的每位取反码,再在所得数的末位加1,则正好得到负数的补码,这简称为对尾数的“取反加1”。

热心网友 时间:2022-03-29 12:34

一般用补码方式表示,举例说明:

-52,假设存储的数据是8位二进制数,即8位二进制补码

先将52转换成二进制数:00110100B

取反:11001011B

加1:11001100B

则-52D的8位二进制补码为11001100B

如果已知11001100B是有符号数,因为最高位是1,则这个码是用补码表示的一个负数

11001100B减1=11001011B

取反=00110100B=52D

则可知:11001100B是-52D的补码表示

扩展资料:

二进制是计算技术中广泛采用的一种数制。二进制数据是用0和1两个数码来表示的数。

它的基数为2,进位规则是“逢二进一”,借位规则是“借一当二”,由18世纪德国数理哲学大师莱布尼兹发现。当前的计算机系统使用的基本上是二进制系统,数据在计算机中主要是以补码的形式存储的。计算机中的二进制则是一个非常微小的开关,用“开”来表示1,“关”来表示0。

热心网友 时间:2022-03-29 14:09

下面按照八位二进制来解释。

十进制数字,在计算机中,是以二进制存储:

十进制数 0,存放的,就是二进制 0000 0000。

十进制数 +1,就加上 1,二进制是 0000 0001。

十进制数 +2,就再加 1,二进制是 0000 0010。

。。。

十进制数 +127,加 1加 1...,就加到了 0111 1111。

----------

负数怎么办? 你就从 0,依次递减吧。

十进制数 0,以二进制 0000 0000 存放。

十进制数 -1,就减去 1,得 1111 1111 = 255(十进制)。

十进制数 -2,就再减 1,得 1111 1110 = 254。

十进制数 -3,就再减 1,得 1111 1101 = 253。

。。。

十进制数 -128,减 1减 1...,得 1000 0000 = 128。

不要再减了,这就是最小值了。

(你再继续减,就是 0111 1111,这就是+127 了。)

因此,最小的负数是-128,存放的是 10000000。

----------

总结:

  零和正数:直接用二进制存放。

  负数:存放形式是【256+这个负数】。

  这套存放格式,就是所谓的【补码】。

 

求【补码】,就是这么简单。

完全不用绕到“原码反码符号位”那么远。

可以用十进制了计算。如果需要二进制,你就再转换一下。

用这个方法,不涉及原码反码符号位,就少了不少麻烦事。

----------

补码有什么用?

 利用补码,可以把减法运算,转换成加法。

 (所以,在计算机中,有一个加法器,就够用了。)

例如:6-2 = 4,用补码运算如下:

    6 的补码是 0000 0110

 + -2 的补码是 1111 1110

-----------------

       (1) 0000 0100   (= 4 的补码)

 (括号中的 1,是进位,舍弃不要了。)

注意:

 如果运算结果超出了-128~+127 的范围,结果将是错的。

 这种现象称为“溢出”。

 再注意一下:进位,并不等于溢出。

---------

因为补码的这个特性,所以,在计算机中,只是使用补码存放数据。

原码反码,在计算机中,都是不存在的。

原码反码 的用途,仅仅是用于“笔算”。

其实,笔算的方法,并非只有“取反加一”。

另外,-128,有补码,但是却没有原码反码!

用“取反加一”来求-128 的补码,无异于缘木求鱼。

所以,大家,完全不必在原码反码 上浪费时间精力。

但是,考试怎么办?

呃 ...,千万别跟老师较劲,他怎么讲,你就怎么答吧。


热心网友 时间:2022-03-29 16:00

二进制表示负数方法:用字节的最高位表示:"0"表示"负" 。负数是以补码的形式表示的。
例如:
如果是一个8位的有符号整数,这个二进制数应该表示为00001101,最高一位是符号位。
负数的话,先置符号位为1,剩下的位按位取反,末位加1,最后的结果是11110011。

负数表示二进制的方法:

热心网友 时间:2022-03-29 18:08

在计算机中,负数以其正值的补码形式表达,方法为其绝对值求反加一。
例如 -100的绝对值为100
100原码:1000 0000 0110 0100
100反码:1111 1111 1001 1011
100补码:1111 1111 1001 1100=1111 1111 1001 1011(反码) +1
所以-100二进制表示为:1111 1111 1001 1100
原码:一个整数按绝对值大小转换成的二进制数称为原码;
反码:将二进制数按位取反,所得的新二进制数称为原二进制数的反码;(取反操作:1变0,0变1)
补码:反码加1称为补码。

热心网友 时间:2022-03-29 20:33

  在计算机中,负数以其正值的补码形式表达,方法为其绝对值求反加一。
  例如 -100的绝对值为100
  100原码:1000 0000 0110 0100
  100反码:1111 1111 1001 1011
  100补码:1111 1111 1001 1100=1111 1111 1001 1011(反码) +1
  所以-100二进制表示为:1111 1111 1001 1100
  原码:一个整数按绝对值大小转换成的二进制数称为原码;
  反码:将二进制数按位取反,所得的新二进制数称为原二进制数的反码;(取反操作:1变0,0变1)
  补码:反码加1称为补码。

热心网友 时间:2022-03-29 23:14

  二进制表示负数方法:用字节的最高位表示:"0"表示"负" 。负数是以补码的形式表示的。
  例如:
  如果是一个8位的有符号整数,这个二进制数应该表示为00001101,最高一位是符号位。
  负数的话,先置符号位为1,剩下的位按位取反,末位加1,最后的结果是11110011。

热心网友 时间:2022-03-30 02:12

在2进制面前加“0”即为表示负数,但是需要满足4为或是8位,如果不足的需用补齐0
例如:10进制:2; 2进制: 10
10进制:-2; 2进制:0010,此数需补足4位,所以不是010,而是0010
如果多出4位,则扩展位8位,并在首位加“0”例如10010的负数为00010010

热心网友 时间:2022-03-30 05:27

二进制 无符号 有符号
000 0 0
001 1 1
010 2 2
011 3 3
——————————————————————————
100 4 -4
101 5 -3
110 6 -2
111 7 -1
所以
3位二进制可以表示无符号的整数范围:0~7,有符号的整数范围:-4~3。
4位二进制可以表示无符号的整数范围:0~15,有符号的整数范围:-8~7。
8位二进制可以表示无符号的整数范围:0~255,有符号的整数范围:-128~127。
其他以此类推。

热心网友 时间:2022-03-30 08:58

无论什么进制,都是在前面写上负号(-),就代表负数了
用二进制表示负数,也是一样,加上负号(-)就行了。

比如:
 -319 (十进制)
=-100111111 (二进制)
= -477 (八进制)
= -13F (16 进制)
-------------------
在计算机领域,负号,用 1 代表。

热心网友 时间:2022-03-30 12:46

在计算机中,负数以其正值的补码形式表达。
反码表示法规定:正数的反码与原码相同,负数的反码为对该数的原码除符号位外各位取反。
补码表示法规定:正数的补码与原码相同,负数的补码为对该数的原码除符号位外各位取反,然后在最后一位加1.

热心网友 时间:2022-03-30 17:07

上面说的是错的!0表示“+”,1表示“-"

参考资料:计算机导论第二版

声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。
E-MAIL:11247931@qq.com