为什么8位有符号数的取值范围是

您所在的位置:网站首页 最小的位数是什么位 为什么8位有符号数的取值范围是

为什么8位有符号数的取值范围是

2024-07-12 20:17| 来源: 网络整理| 查看: 265

                                                         为什么8位有符号数的取值范围是-128 ~127

         计算机存储数据是以什么码(原码,反码,补码)存储的?为什么?带着问题一起探讨。

我们知道,有符号数的取值范围为:-2^(n-1) ~ 2^(n-1)-1 (其中n为数据位数),当n=8时,数据取值范围:-128 ~ 127

对于无符号类型n=8时,数据取值范围为: 0 ~255

正数的原码,反码,补码都相同,

数值                                原码                                         反码                                              补码                          符号位

0                                 0000 0000                                 0000 0000                                    0000 0000                       0

1                                 0000 0001                                 0000 0001                                    0000 0001                       0

...                                 ......                                            ....                                                ...

127                             0111 1111                                   01111 1111                                    0111 1111                        0

 

负数的原码,反码和补码不同,转化原理为:原码-------位取反(符号位不变)------->反码-------------+1----------->补码

数值                                原码                                         反码                                              补码                          符号位

-1                                1000 0001                                 1111 1110                                    1111 1111                        1

-2                                1000 0010                                 1111 1101                                    1111 1110                       1

...                                 ......                                            ....                                                ...

-126                            1111 1110                                  1000 0001                                   1000 0010                      1

-127                            1111 1111                                  1000 0000                                   1000 0001                      1

-128                            xxxx xxxx                                   xxxx xxxx                                    1000 0000                      1

     那么-128补码是多少了,从上面规律可以看出,-128的补码是1000 0000,反码 = 补码 - 1,则反码为0111 1111(最高位(第7位)向第8位借了一位),原码 = 反码取反,则原码为1000 0000(可以认为是-0),此时原码中的1是数据位不是符号位,其值为-128。

计算机中为什么要用补码存储数据?

计算机在做同号相减或异号相加时,若都为原码,计算非常复杂,符号位不能简单加减,需要根据两者的绝对值而定,若为补码,则不需要考虑这些因素,符号位可以直接作加减操作。

实验:

 

 

 

 

 

 



【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3