欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

C语言中关于二进制的换算

程序员文章站 2022-07-15 09:58:18
...

进制:进制也就是进位制,是人们规定的一种进位方法、是一种计数方式。 对于任何一种进制—X进制,就表示某一位置上的数运算时是逢X进一位。 十进制是逢十进一,二进制就是逢二进一,以此类推,x进制就是逢x进位。

十进制 二进制
数码: 0、1、2、3、4、5、6、7、8、9 数码: 0、1
基数: 10 基数: 2
运算规律: 逢十进一,借一当十 运算规律: 逢二进一,借一当二
展开形式: 101=1102+0101+1*100 展开形式: 101.1=122+021+120+12-1
表示形式: 十进制数可以不加注,也可以写成加注形式:如 (99)10 或99(10)或(99D) 表示形式: 二进制数10110011可以写成(10110011)2或10110011(2)或写成10110011B
案例1:108(10)=?

算法一:

108=64+44
20=1 =26+44
21=2 =26+32+12
22=4 =26+25+12
23=8 =26+25+8+4
24=16 =26+25+23+4
25=32 =26+25+23+22
26=64 =126+125+024+123+122+021+0*20
27=128 =1101100(2)

第二种方法:除2逆向取余法

除数 被除数 余数
2 108 0
2 54 0
2 27 1
2 13 1
2 6 0
2 3 1
2 1 1
0 0

除2逆向取余法(从下到向)
最终得出108(10)=101100(2)

十进制小数转二进制和整数转换相同:如0.875=?
0.875=0.5+0.375
2-1=0.5 =2-1+0.25+0.125
2-2=0.25 =2-1+2-2+2-3
2-3=0.125 =0.111(2)

同样十进制转二进制也可以使用乘以2顺向取整法

0.875*2=1.75 1
0.75*2=1.5 1
0.5*2=1 1

顺序向下
0.875(10)=0.111(2)

二进制数的运算规则

加法规则:0+0=0,0+1=1,1+0=1,1+1=10
乘法规则:0•0=0, 0 • 1=0 ,1 • 0=0,1 • 1=1

案例: (1101.01)2 + (11.01)2 =?
       1101.01 
     +   11.01       
	   10000.10

为什么计算机用二进制而不是十进制来存储数据?

二进制数只有0和1两个数码,它的每一位都可以用电子元件来实现,且运算规则简单,相应的运算电路也容易实现