计算机中的真值和机器数
真值(即:带有正负号的数值是真值,⽤0或1来表⽰正负号的数值是机器数,例如:-10011为真值,110011为机器数)
以下X表⽰数据的真值。
1.原码表⽰法
最简单且直观的机器数表⽰法,其最⾼位为符号位(0为正,1为负),数值部分与真值的数值相同
设X为纯⼩数,⼀位符号位,n个数值位,则
[X]
原
=
{
X 0=
1-X=1+|X| -(1-2n-1
)=
例如:x=-0.1001,那么先把它转化成机器数为:1.1001
根据公式:[X]
原
=1-X=1-(-0.1001)=1+0.1001=1.1001=1+|-0.1001|
[+0.8125]
原
=(0.1101000)
2
[-0.8125]
原
=1-(-0.8125)=(1.0000000)
2
+(0.1101000)
2
=(1.1101000)
2
设X为纯整数,⼀位符号位,n个数值位,则
[X]
原
={
X 0=
2n
-X=2
n
+|X|-(2
n-1)=
例如:机器字长n=8
[+35]
原
=(00100011)
2
[-35]
原
=27-(-35)=(10000000)
2
+(00100011)
2
=(10100011)
2
2.补码表⽰法
变形补码:即⽤两个⼆进制位来表⽰数字的符号位,其余与补码相同。变形补码,⽤"00"表⽰正,⽤"11"表⽰负,也称为模4的补码。
⽤变形补码进⾏加减运算时,当运算结果的符号位出现"01"或者"10"时,则表⽰产⽣溢出。变形补码的最⾼位(第⼀个符号位)总是表⽰正
确的符号,
⽐如"00"、"01"分别表⽰正数、正溢出(上溢),"11"、"10"表⽰负数、负溢出(下溢)。
1、产⽣01的情况:补码:0111+0010----1001
两个正数相加出现了负数,明显有误,就是说此时产⽣了上溢出(注:补码运算时符号位也参与运算)
变形补码:00111+00010----01001
此时读数时,由于左边的符号位是0,所以表⽰正数,读成+9,⽽不像模⼆补码中变成了-7
2、产⽣10的情况:补码:1001+1010----10011
溢出⼀位后,结果变成了0011,两个负数相加出现了正数,明显有误,就是说此时产⽣了(注:补码运算时符号位也参与运算)
变形补码:11001+11010----110011
溢出⼀位后,结果变成了10011,此时读数时,由于左边的符号位是1,所以表⽰负数,读成-19,⽽不像模⼆补码中变成了+3
(注:产⽣01和10时,读数时右边那⼀位符号也要算在数字⾥⾯)
本文发布于:2022-12-09 15:34:04,感谢您对本站的认可!
本文链接:http://www.wtabcd.cn/fanwen/fan/88/73346.html
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。
留言与评论(共有 0 条评论) |