大家好,又见面了,我是你们的朋友全栈君。如果您正在找激活码,请点击查看最新教程,关注关注公众号 “全栈程序员社区” 获取激活教程,可能之前旧版本教程已经失效.最新Idea2022.1教程亲测有效,一键激活。
Jetbrains全系列IDE稳定放心使用
关于十进制小数转换为二进制数,下面是我的详细操作说明,仅供参考。
纯小数
首先,最高位是符号位,正数是0,负数是1;小数部分乘以2,然后取整数部分,,剩余小数部分继续乘以2,取整数部分,……直到小数部分为0。
以+0.125为例:
+数,最高位为0;
小数部分0.125×2=0.25,取0;
再取小数部分0.25×2=0.5,取0;
再取小数部分0.5×2=1.0,取1;
这时小数部分是0,结束。然后取得数从前往后顺着数,为001。则+0.125的二进制数为:0001。
同理,-0.125的二进制为1001。只是符号位变了,小数计算方式一样。
需要注意的是,有的十进制小数转换为二进制是无限的,不是你算错了,不要纠结。
以0.65为例:
0.65×2=1.3,取1;
0.3×2=0.6,取0;
0.6×2=1.2,取1;
0.2×2=0.4,取0;
0.4×2=0.8,取0;
0.8×2=1.6,取1;
0.6×2=1.2,取1;
……
此时已经陷入了循环,不必再计算,0.65的二进制就是01010011……,有的计算中并不要求有符号位,可省略,为1010011……
非纯小数
就是既有整数,又有小数的数。此时计算方法就是分开算:整数部分按平时的转换方法,即除2取余法,小数部分按纯小数的方法计算,然后放在一起就好。符号位仍然是在最高位。
以+3.25为例:
+数,为0;
3转换为二进制为:11;
0.25用纯小数的方法计算,为01;
则+3.25的二进制数为011.01。
同理,-3.25的二进制为111.01。
如果没有要求带符号位,则可省去不写。
发布者:全栈程序员-用户IM,转载请注明出处:https://javaforall.cn/189773.html原文链接:https://javaforall.cn
【正版授权,激活自己账号】: Jetbrains全家桶Ide使用,1年售后保障,每天仅需1毛
【官方授权 正版激活】: 官方授权 正版激活 支持Jetbrains家族下所有IDE 使用个人JB账号...