小数的原码,反码,补码
6个回答
展开全部
化为2进制是整数部分除以二知道变为1
小数部分乘以2直到变为1
,符号位0表示正1表示负
正数:原码=补码
负数:
原码
=
正数部分(去掉负号)的二进制值,且符号位(最左边的比特位)为1
反码
=
正数部分(去掉负号)的二进制值,按位取反
补码
=
反码
+
1
小数点依旧用点
定点数
所谓定点数是指小数点位置固定不变的数。在计算机中,通常用定点数来表示整数与纯小数,分别称为定点整数与定点小数。
定点整数:一个数的最高二进制位是数符位,用以表示数的符号;而小数点的位置默认为在最低(即最右边)的二进制位的后面,但小数点不单独占一个二进制位,如下所示:
0
1001010010001010001
数符位
数值位
小数位
因此,在一个定点整数中,数符位右边的所有二进制位数表示的是一个整数值。
定点小数:一个数的最高二进制位是数符位,用来表示数的符号;而小数点的位置默认为在数符位后面,不单独占一个二进制位,如图所示:
0
1001010010001010001
数符位|小数位
数值位
因此,在一个定点小数中,数符位右边的所有二进制位数表示的是一个纯小数。
2.浮点数
在计算机中,定点数通常只用于表示整数或纯小数。而对于既有整数部分又有小数部分的数,由于其小数点的位置不固定,一般用浮点数表示。
在计算机中所说的浮点数就是指小数点位置不固定的数。一般地,一个既有整数部分又有小数部分的十进制数D可以表示成如下形式:
D=R*10N
其中R为一个纯小数,N为一个整数。
如一个十进制数123.456可以表示成:0.123456*103,十进制小数0.00123456可以表示成0.123456*10-2。纯小数R的小数点后第一位一般为非零数字。
同样,对于既有整数部分又有小数部分的二进制数口也可以表示成如下形式:
D=R*2N
其中R为一个二进制定点小数,称为D的尾数;N为一个二进制定点整数,称为D的阶码,它反映了二进制数D的小数点的实际位置。为了使有限的二进制位数能表示出最多的数字位数,定点小数R的小数点后的第一位(即符号位的后面一位)一般为非零数字(即为“1”)。
在计算机中,通常用一串连续的二进制位来存放二进制浮点数,它的一般结构如图所示:
阶符
N
数符
R
|
阶码部分
|
小数位
尾数部分
小数部分乘以2直到变为1
,符号位0表示正1表示负
正数:原码=补码
负数:
原码
=
正数部分(去掉负号)的二进制值,且符号位(最左边的比特位)为1
反码
=
正数部分(去掉负号)的二进制值,按位取反
补码
=
反码
+
1
小数点依旧用点
定点数
所谓定点数是指小数点位置固定不变的数。在计算机中,通常用定点数来表示整数与纯小数,分别称为定点整数与定点小数。
定点整数:一个数的最高二进制位是数符位,用以表示数的符号;而小数点的位置默认为在最低(即最右边)的二进制位的后面,但小数点不单独占一个二进制位,如下所示:
0
1001010010001010001
数符位
数值位
小数位
因此,在一个定点整数中,数符位右边的所有二进制位数表示的是一个整数值。
定点小数:一个数的最高二进制位是数符位,用来表示数的符号;而小数点的位置默认为在数符位后面,不单独占一个二进制位,如图所示:
0
1001010010001010001
数符位|小数位
数值位
因此,在一个定点小数中,数符位右边的所有二进制位数表示的是一个纯小数。
2.浮点数
在计算机中,定点数通常只用于表示整数或纯小数。而对于既有整数部分又有小数部分的数,由于其小数点的位置不固定,一般用浮点数表示。
在计算机中所说的浮点数就是指小数点位置不固定的数。一般地,一个既有整数部分又有小数部分的十进制数D可以表示成如下形式:
D=R*10N
其中R为一个纯小数,N为一个整数。
如一个十进制数123.456可以表示成:0.123456*103,十进制小数0.00123456可以表示成0.123456*10-2。纯小数R的小数点后第一位一般为非零数字。
同样,对于既有整数部分又有小数部分的二进制数口也可以表示成如下形式:
D=R*2N
其中R为一个二进制定点小数,称为D的尾数;N为一个二进制定点整数,称为D的阶码,它反映了二进制数D的小数点的实际位置。为了使有限的二进制位数能表示出最多的数字位数,定点小数R的小数点后的第一位(即符号位的后面一位)一般为非零数字(即为“1”)。
在计算机中,通常用一串连续的二进制位来存放二进制浮点数,它的一般结构如图所示:
阶符
N
数符
R
|
阶码部分
|
小数位
尾数部分
展开全部
说到二进制补码,大家都知道:有符号数的负数的补码是
其正数的反码+1,例如
10001111
的补码是反码01110000
加
1
=01110001
,很多书都这么说,可是为什么这样计算的结果就是它的补码?为什么要用补码?很多书要么不解释,要么就是说:这是因为在计算机内补码计算最快。(其实是补码计算指令的CPU设计更容易实现)
最初我看的书,《大学计算机基础教程》(我非计算机专业),这破书说不清,道不明,给与我非常严重负面的影响,以至于我在以后的计算机学习过程中,程序设计中遇到大大小小不少麻烦和迷茫。
在某些计算机组成原理书上提到:其实补码的计算原理,是用一个模来减去无符号的正数部分。譬如时钟,12点之后是13点,但是时钟上没有13点怎么办?就用13减去12=1点。这个模是12.可惜这个比喻并不是很好。
请看
一个字节长的无符号数的表示范围
:0~255,有符号数的表示范围:-128~127
,
注意,这个表示范围的写法极有可能影响我们的思维,从而导致错误。我们应该这样来写:0~127
~
-128
~
-1
,这才是较好的写法。为什么?因为这个写法的数的顺序与0~255
一一对应。
由上,我们了解,其实补码不过是用128
~
255
这段范围的数来表示
~128
~
-1这段范围的负数。那么我们就可以凭自己,而不是看教材,就可以推测出计算补码的公式,就是:256-欲求的负数的绝对值=
此负数的补码。
没错,就是这么简单的东西,可是却困扰了很多人。可见有个好的教材是多么的重要。
至于前面
“负数的补码是
其正数的反码+1”
,
极为垃圾的教材才会把这个计算方法作为初始方法来教。因为这个计算方法屏蔽了补码的计算原理。其实这不过是
“256
-
欲求的负数的绝对值
=
此负数的补码”的一个比较取巧的计算方法而已。请看
256=1
0000
0000
=1111
1111+1,而
1111
1111减任何二进制数的结果就是把这个数取反,那么
256
-
某二进制数A
既是:将
A取反
+1
以上:完毕!
注:所有讨论均在字节长范围内(8bit)
进行
其正数的反码+1,例如
10001111
的补码是反码01110000
加
1
=01110001
,很多书都这么说,可是为什么这样计算的结果就是它的补码?为什么要用补码?很多书要么不解释,要么就是说:这是因为在计算机内补码计算最快。(其实是补码计算指令的CPU设计更容易实现)
最初我看的书,《大学计算机基础教程》(我非计算机专业),这破书说不清,道不明,给与我非常严重负面的影响,以至于我在以后的计算机学习过程中,程序设计中遇到大大小小不少麻烦和迷茫。
在某些计算机组成原理书上提到:其实补码的计算原理,是用一个模来减去无符号的正数部分。譬如时钟,12点之后是13点,但是时钟上没有13点怎么办?就用13减去12=1点。这个模是12.可惜这个比喻并不是很好。
请看
一个字节长的无符号数的表示范围
:0~255,有符号数的表示范围:-128~127
,
注意,这个表示范围的写法极有可能影响我们的思维,从而导致错误。我们应该这样来写:0~127
~
-128
~
-1
,这才是较好的写法。为什么?因为这个写法的数的顺序与0~255
一一对应。
由上,我们了解,其实补码不过是用128
~
255
这段范围的数来表示
~128
~
-1这段范围的负数。那么我们就可以凭自己,而不是看教材,就可以推测出计算补码的公式,就是:256-欲求的负数的绝对值=
此负数的补码。
没错,就是这么简单的东西,可是却困扰了很多人。可见有个好的教材是多么的重要。
至于前面
“负数的补码是
其正数的反码+1”
,
极为垃圾的教材才会把这个计算方法作为初始方法来教。因为这个计算方法屏蔽了补码的计算原理。其实这不过是
“256
-
欲求的负数的绝对值
=
此负数的补码”的一个比较取巧的计算方法而已。请看
256=1
0000
0000
=1111
1111+1,而
1111
1111减任何二进制数的结果就是把这个数取反,那么
256
-
某二进制数A
既是:将
A取反
+1
以上:完毕!
注:所有讨论均在字节长范围内(8bit)
进行
本回答被网友采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
先将57化成二级制数,那么应该为0011
1001.(假如不懂百度“将十进制转化为二级制”,它说的更加详细),然后由于-57<0,所以应在所求的二级制的最前面改成1,这是符号位(正数时最前面一位为0,负数为1),及-57的原码为1011
1001,反码就是原码的各位都取其非值(符号位除外),所以反码就为:1100
0110.最后要求补码了,补码的概念找一下计算机基础之类的书就可以了,或者直接百度。补码等于反码加1.因此补码为:1100
0111
1001.(假如不懂百度“将十进制转化为二级制”,它说的更加详细),然后由于-57<0,所以应在所求的二级制的最前面改成1,这是符号位(正数时最前面一位为0,负数为1),及-57的原码为1011
1001,反码就是原码的各位都取其非值(符号位除外),所以反码就为:1100
0110.最后要求补码了,补码的概念找一下计算机基础之类的书就可以了,或者直接百度。补码等于反码加1.因此补码为:1100
0111
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
首先正数的原码
反码
补码是相同的,负数的反码是最高位符号位不变,其他值取反,补码是在其反码基础上+1。原码就是本身的2进制位数,符号位正数是0,负数是1。plc的0是断开,1是闭合
反码
补码是相同的,负数的反码是最高位符号位不变,其他值取反,补码是在其反码基础上+1。原码就是本身的2进制位数,符号位正数是0,负数是1。plc的0是断开,1是闭合
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
小数,就得用“浮点数”格式了。
原码、反码、补码,这些是用来描述整数的。
不要随意的歪曲概念。
原码、反码、补码,这些是用来描述整数的。
不要随意的歪曲概念。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询