中易网

在线等,很急的。二进制和十进制 浮点数

答案:1  悬赏:30  
解决时间 2021-01-16 20:40
  • 提问者网友:凉末
  • 2021-01-16 04:25
在线等,很急的。二进制和十进制 浮点数
最佳答案
  • 二级知识专家网友:蓝房子
  • 2021-01-16 04:51
整数转化为二进制
1.正整数用源码表示
2.负整数用绝对值的补码表示(将绝对值取反+1)
如-50用50的补码表示
50的源码为 00000000000000000000000000110010
反码则为
11111111111111111111111111001101
补码为反码+1 11111111111111111111111111001110
二进制转化为整数
1.如果符号位为0,表示为正,直接将二进制数据翻译即可
2.如果符号位为1,表示为负,将数据-1取反.或者(取反+1)
如: 11111111111111111111111111001110
-1: 11111111111111111111111111001101
取反: 00000000000000000000000000110010
源码: 11111111111111111111111111001110
取反: 00000000000000000000000000110001
+1: 00000000000000000000000000110010
浮点型转化为二进制
将整数转化为二进制,去掉首位1,小数转化为二进制,整数去1后二进制位数+127转化为二进制,然后根据浮点型正负在最前面加上符号位。
如:-40.125
整数为101000,去掉首位1则为01000,小数为001,则整数位数为5,+127=132(10000100),加上符号位1,则二进制数据为
100 0010 0
整数:

1010 00
去掉首位1:

010 00
加上前八位表示小数点位置: 100 0010 0010 0000 1
加上小数位:
100 0010 0010 0000 1000 0000 0000 0000
加上符号位:1100
0010 0010 0000 1000 0000 0000 0000
二进制转化为浮点型
去掉首位符号位,取前八位-127然后将剩余的二进制数据小数点后移所得值,首位+1,小数点之前位整数,之后为小数,由符号位判断正负。
如:正数: 0100 0011 0100 0100 0100 0110 1111
1100
去掉符号位:
100 0011 0100 0100 0100 0110 1111 1100
前八位 100 0011
0=134-124
=7;
整数:
100
0100首位+1
1100 0100=196
小数:
0100 0110 1111 1100
小数依次乘1/2,1/4,1/8,1/16....=1/2*0+1/4*1+1/8*0+1/16*0+1/32*0+1/64*1......最后得出保留四位小数的话是196.2769
负数:
如:1100 0010 0010 0010 0111 1110
1001 0000
取掉符号位: 100 0010 0010 0010 0111 1110 1001
0000
取前八位100 0010
0=132
-127=5
整数部分:
010
00
首位+1=1010 00
=40
小数部分10 0111
1110 1001 0000
=1/2+1/16+1/32+1/64+1/128+1/256+....=0.621浮点数为
-40.621

十进制小数→→→→→二进制小数 方法:“乘2取整”
对十进制小数乘2得到的整数部分和小数部分,整数部分既是相应的二进制数码,再用2乘小数部分(之前乘后得到新的小数部分),又得到整数和小数部分.
如此不断重复,直到小数部分为0或达到精度要求为止.第一次所得到为最高位,最后一次得到为最低位
如:0.25的二进制
0.25*2=0.5取整是0
0.5*2=1.0
取整是1
即0.25的二进制为 0.01 (
第一次所得到为最高位,最后一次得到为最低位)
0.8125的二进制
0.8125*2=1.625 取整是1
0.625*2=1.25
取整是1
0.25*2=0.5
取整是0
0.5*2=1.0
取整是1
即0.8125的二进制是0.1101(第一次所得到为最高位,最后一次得到为最低位)

十进制小数→→→→→八进制小数 方法:“乘8取整”
0.71875)10 =(0.56)8

0.71875*8=5.75
取整5
0.75*8=6.0
取整6
即0.56
十进制小数→→→→→十六进制小数方法:“乘16取整”例如:
(0.142578125)10=(0.248)16

0.142578125*16=2.28125取整2
0.28125*16=4.5
取整4
0.5*16=8.0
取整8
即0.248

非十进制数之间的转换
(1)二进制数与八进制数之间的转换
转换方法是:以小数点为界,分别向左右每三位二进制数合成一位八进制数,或每一位八进制数展成三位二进制数,不足三位者补0。例如:(423。45)8=(
我要举报
如以上回答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
点此我要举报以上问答信息!
大家都在看
推荐信息