十进制小数0.85转二进制(十进制小数部分和负数转化其他进制)

 2023-11-17  阅读 1102  评论 0

摘要:十进制小数部分和负数转化其他进制十进位制小数部分转化为二进制小数,如果既有整数,又有小数部分,要分开计算,整数部分除2取余逆向排列余数〈转化八、十六进制顺便换除8、除16逆向取余,商为0时中止计算),小数部分乘2取整顺向排列取整数部分。十进制的整数部分转换二进制,利用除2取余倒记法,但是十进制小数部

十进制小数部分和负数转化其他进制

十进位制小数部分转化为二进制小数,

如果既有整数,又有小数部分,要分开计算,整数部分除2取余逆向排列余数〈转化八、十六进制顺便换除8、除16逆向取余,商为0时中止计算),小数部分乘2取整顺向排列取整数部分。

十进制的整数部分转换二进制,利用除2取余倒记法,但是十进制小数部分转化采用乘2取整顺记法〈转化八、十六进制顺便换乘8、乘16顺向取整,小数部分为0时中止计算,不为0时根据2^(-n)比十进制小数多一位时中止计算)。

十进制小数部分转成二进制,十进制的小数转换为二进制小数,主要是利用小数部分乘2,取整数部分,直至小数点后为0,或者达到所要求的精度为止。把取出的整数部分按顺向序排列起来,先取的整数作为二进制小数的高位有效位,后取的整数作为低位有效位。

例:十进制的0.125转化成二进制。

将小数部分0.125乘2,积0.25取整数部分0。

用剩余的小数部分0.25乘2,积0.5取整数部分0,

将剩余的小数部分0.5乘2,积1取整数部分1。

此时,小数部分已经为0,则计算结束,0.125的二进制数将所得取整数按顺序排列,得到0.001。

验证一下是否为0.125,0 0 1*2^(-3)=0.125

如果小数部分一直不变为0,可根据精度要求中止计算。

有的小数乘2以后,小数部分一直无法得到0,如0.835乘2后小数部分就一直变不成0,这时只需根据一定的精确度中止计算,按顺向取整数,反向验证能满足十进位小数点位数精度要求即可,比十进制数要求位数多取一位即可,如8、16位制向小数方向再多进一位,相加不影响前面数字变化,不需要多进一位,只需当前位2^(-n)次方小数位比十进位数多一位小数位,精度可满足要求。8、16位制换算时8^(-n)或16^(-n)小数位比十进制多一位小数位。

对负的十进制数转化二进制数,以十进制-17d(d表示十进制,b表示二进制)为例

十进位数17转为二进制数

17除2商8余1,8除2商4余0,4除2商2余0,2除2商1余0,1除2商0余1,直到商为0时中止,余数倒排,十进制17的二进制数为10001。

十进位数一17d转为二进制数

-17d=-10001b,将绝对值-10001补全至一个字节8位:00010001,然后取反得:11101110,加1后得:11101111,它就是-17的8位二进制转换数(负数二进制转换数就是转换成二进位数,取反得到二进制补码)。

十进制转换成二进制的步骤为:125d(d表示十进制数)

125除以2商62余1,

62除以2商31余0,

31除以2商15余1,

15除以2商7余1,

7除以2商3余1,

3除以2商1余1,

1除以2商0余1,直至商为0中止,所有余数逆向排列,逆向顺序取值,即1111101,也可用0补足8位一个字节为01111101。

下面验证一下二进位数01111101是否为125d。

第一位为1,二位为2,三位2^2,四位2^3,每增加一位多乘以一个2。

1 2^2 2^3 2^4 2^5 2^6=125。

取数进行相加的位置为1,其它位置为0。

十进制转换成八进制

对十进制数整数部分除以8(小数部分,利用小数部分乘8,取整数部分,直至小数点后小数部分为0,或者达到所要求的精度为止,顺向取数)取每次的余数部分,直到得到的商为0。小数部分乘以8,取出每次结果的整数部分,直到最后的小数部分为0中止计算。

125除以8商15余5,

15除以8商1余7,

1除以8商0余1,直至商为0中止,所有余数逆向排列,逆向顺序取值,即175,也可用0补足8位一个字节为00000175。

下面验证一下八进位数175是否为125d。

第一位为1,二位为8,三位8^2,四位8^3,每增加一位多乘以一个8。

5 7*8 1*8^2=125。

取数进行相加的位置为1~7,其它位置为0。

十进制转换成十六进制

对十进制数整数部分除以16(小数部分,利用小数部分乘16,取整数部分,直至小数点后为0,或者达到所要求的精度为止,顺向取数)取每次的余数部分,直到得到的商为0。小数部分乘以16,取出每次结果的整数部分,直到最后的结果为0。

125除以16商7余13,

7除以16商0余7,

直至商为0中止,所有余数逆向排列。

十六进制英文名称:Hex number system,是计算机中数据的一种表示方法。同我们日常中的十进制表示法不一样。它由0-9,A-F组成。与10进制的对应关系是:0-9对应0-9,A-F对应10-15,N进制的数可以用0---(N-1)的数表示,超过9的用字母A-F。B在16进制中序数为11,1~9对应1~9,A~F对应10~15。

这里逆向顺序取值,13用D表示,即7D,也可用0补足8位一个字节为0000007D。

下面验证一下十六进位数7D是否为125d。

第一位为1,二位为16,三位16^2,四位16^3,每增加一位多乘以一个16。

13 7*16=125。

十进制小数0.85转二进制(十进制小数部分和负数转化其他进制)(1)

二进制转化

,

版权声明:xxxxxxxxx;

原文链接:http://cn.tdroid.net/ce81aCz0HCg4FXw.html

发表评论:

管理员

  • 内容91030
  • 积分0
  • 金币0
关于我们
lecms主程序为免费提供使用,使用者不得将本系统应用于任何形式的非法用途,由此产生的一切法律风险,需由使用者自行承担,与本站和开发者无关。一旦使用lecms,表示您即承认您已阅读、理解并同意受此条款的约束,并遵守所有相应法律和法规。
联系方式
电话:
地址:广东省中山市
Email:
注册登录
注册帐号
登录帐号

Copyright © 2022 太卓开发网 Inc. 保留所有权利。 Powered by LECMS 3.0.1

页面耗时0.0805秒, 内存占用1.36 MB, 访问数据库18次

泰达科技网易库网