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

进制:进制也就是进位制,是人们规定的一种进位方法、是一种计数方式。 对于任何一种进制—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两个数码,它的每一位都可以用电子元件来实现,且运算规则简单,相应的运算电路也容易实现

你可能感兴趣的:(C语言)