二进制负数小数的源码_二进制表示负小数

hacker|
95

文章目录:

二进制正,负数的原码,反码,补码三者之间是什么关系

以8位二进制为例,

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

负数的反码为:除符号位外,原码各位取反,反码加1,得负数的反码.

下面就对于原码,反码,补码详细分析一下:

原码:将一个整数,转换成二进制,就是其原码。如单字节的5的原码为:0000

0101;-5的原码为1000

0101。

反码:正数的反码就是其原码;负数的反码是将原码中,除符号位以外,每一位取反。如单字节的5的反码为:0000

0101;-5的反码为1111

1010。

补码:正数的补码就是其原码;负数的反码+1就是补码。如单字节的5的补码为:0000

0101;-5的原码为1111

1011。

在计算机中,正数是直接用原码表示的,如单字节5,在计算机中就表示为:0000

0101。

负数用补码表示,如单字节-5,在计算机中表示为1111

1011。

小数的补码,原码,反码怎么相互转换?(二进制)

化为2进制是整数部分除以二知道变为1

小数部分乘以2直到变为1

,符号位0表示正1表示负

正数:原码=补码

负数:

原码

=

正数部分(去掉负号)的二进制值,且符号位(最左边的比特位)为1

反码

=

正数部分(去掉负号)的二进制值,按位取反

补码

=

反码

+

1

小数点依旧用点

定点数

所谓定点数是指小数点位置固定不变的数。在计算机中,通常用定点数来表示整数与纯小数,分别称为定点整数与定点小数。

定点整数:一个数的最高二进制位是数符位,用以表示数的符号;而小数点的位置默认为在最低(即最右边)的二进制位的后面,但小数点不单独占一个二进制位,如下所示:

1001010010001010001

数符位

数值位

小数位

因此,在一个定点整数中,数符位右边的所有二进制位数表示的是一个整数值。

定点小数:一个数的最高二进制位是数符位,用来表示数的符号;而小数点的位置默认为在数符位后面,不单独占一个二进制位,如图所示:

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

|

阶码部分

|

小数位

尾数部分

负小数如何用二进制表示?

这要看用定点数还是浮点数来表示负小数了。定点数的表示与整数类似,可以用原码、反码、补码等等方法,浮点数则只用原码,有相应的IEEE标准,例如IEEE75

整数部分除2倒取余,小数部分乘二取整。比如

-1.25

(假设整数部分用8位来表示)

值为:10000001.01(最前面的1为负号)。

负数在电脑中一般都是用补码存放。补码求法是原码取反后再+1

如:

-2

,原码是1000

0010

注意最前面的1是负号

然后取反

就是1

111

1101

,再加1,结果是

1

111

1110

这就是-2的二进制了。

简述表示一个二进制负数的原码、反码和补码

数分有符号数和无符号数.

有符号数 分定点数 和 浮点数.

有符号数,负数的数码与正数一样,符号位有1,这就是原码.

一般符号位在最高位.

无符号数,如果16位,可以理解 原码的符号位 在第17位,计算机为了方便,负数用补码表示,这就省了第17位.

减法可以用加法器做.

负数原码变反码,反码加1就是补码.

正数不分原码,反码,补码,正数的原码反码补码一样.

0分正0负0,两者是不一样的.

负的小数如何用二进制表示?比如 -1.25

先看数的绝对值。

然后将数分成整数和小数两部分。整数采用除基数再倒取余数法。

小数部分采用乘基数再取整数法。例如:

十进制小数-6.8125化为二进制,基数为2

(1)整数部分为5:

6/2=3……0

3/2=1……1

1/2=0……1

故整数6的二进制数为110

(2)小数部分为0.8125

0.8125*2=1.6250取出整数1

0.6250*2=1.2500取出1

0.2500*2=0.5

取出0

0.5

*2=1.0

取出1

故二进制数为1101

综上,6.8125=110.1101

即-6.8125=-110.1101

另外,在电脑中在数的左端加0表示正数,加1表示负数。有原码、补码、反码等概念。

说得很清楚了,楼主可自行解决补充中的两个数。注:0.23无法用有限长的位数表示,依机器数不同再定。饿,说了这么多,才发现悬赏分值才5。。。呵呵呵

小数的原码,反码,补码

化为2进制是整数部分除以二知道变为1

小数部分乘以2直到变为1

,符号位0表示正1表示负

正数:原码=补码

负数:

原码

=

正数部分(去掉负号)的二进制值,且符号位(最左边的比特位)为1

反码

=

正数部分(去掉负号)的二进制值,按位取反

补码

=

反码

+

1

小数点依旧用点

定点数

所谓定点数是指小数点位置固定不变的数。在计算机中,通常用定点数来表示整数与纯小数,分别称为定点整数与定点小数。

定点整数:一个数的最高二进制位是数符位,用以表示数的符号;而小数点的位置默认为在最低(即最右边)的二进制位的后面,但小数点不单独占一个二进制位,如下所示:

1001010010001010001

数符位

数值位

小数位

因此,在一个定点整数中,数符位右边的所有二进制位数表示的是一个整数值。

定点小数:一个数的最高二进制位是数符位,用来表示数的符号;而小数点的位置默认为在数符位后面,不单独占一个二进制位,如图所示:

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

|

阶码部分

|

小数位

尾数部分

4条大神的评论

  • avatar
    访客 2022-07-07 上午 09:29:45

    一个二进制定点小数,称为d的尾数;n为一个二进制定点整数,称为d的阶码,它反映了二进制数d的小数点的实际位置。为了使有限的二进制位数能表示出最多的数字位数,定点小数r的小数点后的第一位(即符号位的后面一位)一

  • avatar
    访客 2022-07-07 下午 12:11:07

    算机中表示为11111011。小数的补码,原码,反码怎么相互转换?(二进制)化为2进制是整数部分除以二知道变为1小数部分乘以2直到变为1,符号位0表示正1表示负正数:原码=补码负数:原码=正数

  • avatar
    访客 2022-07-07 下午 12:35:44

    进制值,按位取反补码=反码+1小数点依旧用点定点数所谓定点数是指小数点位置固定不变的数。在计算机中,通常用定点数来表示整数与纯小数,分别称为定点整数与定点小数。定点整数:一个数的最高二进制位是数符位,用以表示数的符号;而小数点的位置默认为在最低(即

  • avatar
    访客 2022-07-07 上午 10:24:31

    原码表示的,如单字节5,在计算机中就表示为:00000101。负数用补码表示,如单字节-5,在计算机中表示为11111011。小数的补码,原码,反码怎么相互转换?(二进制)化为2进制是整数部分除以二知道变为1小数部分

发表评论