偏移二进制

玛丽莲梦兔
728次浏览
2021年01月17日 16:17
最佳经验
本文由作者推荐

精神压力大怎么办-工程款支付申请表

2021年1月17日发(作者:季士林)
数值在计算机中表示形式为机器数
,
计算机只能识别
0

1 ,
使用的是二进制
,
而在
日常生活中人们使用的是十进制
,
正如亚里士多德早就指出的那样
,
今天十进制
的广泛采用
,
只不过我 们绝大多数人生来具有
10
个手指头这个解剖学事实的结果
.
尽管在历史上手 指计数
(5,10
进制
)
的实践要比二或三进制计数出现的晚
.摘自
<<
数学发展史
>>
有空大家可以看看哦
~,
很有 意思的
).
为了能方便的与二进制转换
,

使用了十六进制
(2 4)
和八进制
(23).
下面进入正题
.

数值有 正负之分
,
计算机就用一个数的最高位存放符号
(0
为正
,1
为负
).
这就是机
器数的原码了
.
假设机器能处理的位数为
8.
即字长为
1byte,
原码能表示数值的范
围为


(-127~-0 +0~127)

256

.

?
有了数值的表示方法就可以对数进行算术运算
.
但是很快就发现用带符号 位的
原码进行乘除运算时结果正确
,
而在加减运算的时候就出现了问题
,如下
:
假设字
长为
8bits

( 1 )?10-? ( 1 )10?=? ( 1 )10?+ ( -1 )10?= ?( 0 )10

(00000001)

?+ (10000001)

?= (10000010)

?= ( -2 )?
显然不正确
.

?
因为在两个整数的加法运算中是没有问题 的
,
于是就发现问题出现在带符号位
的负数身上
,
对除符号位外的其 余各位逐位取反就产生了反码
.
反码的取值空间和
原码相同且一一对应
.
下面是反码的减法运算
:

?( 1 )10?-? ( 1 )?10=? ( 1 )?10+ ( -1 )?10= ?( 0 )10

?(00000001)?

+ (11111110)

?=? (11111111)

?=? ( -0 ) ?
有问题
.

( 1 )10?-? ( 2)10?=? ( 1 )10?+ ( -2 )10?= ?( -1 )10

(00000001)?

+ (11111101)

?=? (11111110)

?=? ( -1 )?
正确


问题出现在
(+0)

(-0)
,
在人们的计算概念中零是没有正负之分的
.(
印度人首先
将 零作为标记并放入运算之中
,
包含有零号的印度数学和十进制计数对人类文明
的贡献极 大
).

于是就引入了补码概念
.
负数的补码就是对反码加一< br>,
而正数不变
,
正数的原码反
码补码是一样的
.
在补 码中用
(-128)
代替了
(-0),
所以补码的表示范围为
:

(-128~0~127)

256

.

精神压力大怎么办-工程款支付申请表


精神压力大怎么办-工程款支付申请表


精神压力大怎么办-工程款支付申请表


精神压力大怎么办-工程款支付申请表


精神压力大怎么办-工程款支付申请表


精神压力大怎么办-工程款支付申请表


精神压力大怎么办-工程款支付申请表


精神压力大怎么办-工程款支付申请表