首页 > 编程知识 正文

十进制转二进制在线,c语言for循环十进制转二进制

时间:2023-05-05 07:36:22 阅读:174004 作者:1494

1 .在十进制整数二进制中,假设十进制整数值为a,相应的二进制数字为abcde (如果各位的值不是0则为1 )。

众所周知,将二进制转换为十进制的表达式如下:

A = a * 24 + b * 23 + c * 22 + d * 21 + e * 20

因此,只需将a、b、c、d、e全部取出即可得到二进制值。

又见a=2*(a*23b*22c*21d*20 ) e

因此,a除以2将得到整数位(a * 23 b * 22 c * 21 d * 20 )和余数e

将上面得到的整数(a * 23 b * 22 c * 21 d * 20 )除以2得到整数位(a * 22 b * 21 c * 20 )和余数d

这样,c,b,a

2 .在十进制小数二进制中,假设十进制的小数值为a(a1 ),相应的二进制为0.abcde(2 (二进制的各位的值如果不是0则为1 )。

众所周知,将二进制转换为十进制的表达式如下:

A=a * 2-1 b * 2-2 c * 2-3 d * 2-4 e * 2-5

从二进制小数的上位到下位的各位的权重分别为12(FRAC(1) {2}211 )4) FRAC ) {1}{4}41 )8) 81 ) 16 ) FRAC ) {1} 161 ) 32 )

A * 2的结果只有两种可能。 1.****或0.****。 这个值的整数位数字是a的值。

a *2=a12frac {1} {2} 21 b14frac {4} 41c 18frac {1} {2} 81d 116 frac {3} {4} 16 }

因此,如果a为1,则A * 2的结果为1.****

a为0时,A * 2的结果为0。 ***

步骤2 :

a*2-a=(12 ) FRAC{1}{2}21b1 )4) FRAC{1}{4}41c1 ) FRAC{1}{8}81d1 ) 16 ) frac { 16 } 161 e )的

因此,(A * 2 - a ) ) 2的结果也只有两种可能:1.****或0.****。 这个值的整数位数字是b的值。

原理与步骤1相同

(A * 2 - a )2=B12(FRAC(1) {2}21C1 )4) FRAC )1) {4}41D18 ) FRAC )1}{8}81e

第三步:

重复以上操作,可以得到后面的c、d、e的值

注:部分十进制小数对应的二进制数是无限位小数,计算机处理对此类数取近似值。

从十进制0.1到二进制的转换是无限循环小数

0.00011001100110011001100110011001100110011

即使将十进制0.2转换为二进制也是无限循环小数

0.00110011001100110011001100110011001100110011,所以0.1 0.2的值是0.30000000000004

版权声明:该文观点仅代表作者本人。处理文章:请发送邮件至 三1五14八八95#扣扣.com 举报,一经查实,本站将立刻删除。