一、二进制与十进制

1.正整数十进制转二进制

口诀:除二取余,倒序排列
解释:将一个十进制数除以二,得到的商再除以二,依此类推直到商等于一或零时为止,倒取将除得的余数,即换算为二进制数的结果
例如把52换算成二进制数,计算结果如图:
 

2.负数十进制转二进制

口诀:取反加一
解释:将该负整数对应的正整数先转换成二进制,然后对其“取补”,再对取补后的结果加1即可

例如要把-52换算成二进制:
1.先取得52的二进制:00110100
2.对所得到的二进制数取反:11001011
3.将取反后的数值加一即可:11001100
即:(-52)10=(11001100)2

3.小数十进制转二进制

口诀:乘二取整,正序排列
 解释:对被转换的小数乘以2,取其整数部分(0或1)作为二进制小数部分,取其小数部分,再乘以2,又取其整数部分作为二进制小数部分,然后取小数部分,再乘以2,直到小数部分为0或者已经去到了足够位数。每次取的整数部分,按先后次序排列,就构成了二进制小数的序列
例如把0.2转换为二进制,转换过程如图:
0.2乘以2,取整后小数部分再乘以2,运算4次后得到的整数部分依次为0、0、1、1,结果又变成了0.2,
若果0.2再乘以2后会循环刚开始的4次运算,所以0.2转换二进制后将是0011的循环,即:
(0.2)10=(0.0011 0011 0011 .....)2
循环的书写方法为在循环序列的第一位和最后一位分别加一个点标注

4.二进制换十进制

口诀:按权展开,相加

如图【java基础】妙记进制转换-LMLPHP

1*2^2+1*2^1+0*2^0=5

二、8、16进制转2进制

1. 8与2进制

(1)8进制转2进制
口诀:每位除2取余得3位的2进制数,不足补0
如图
【java基础】妙记进制转换-LMLPHP

(2)2进制转8进制
口诀:421,每3位2进制数对应1位8进制数,是1则对应,是0则是零,然后相加
如下:
10010110
(不足3位补0)010   对应 4*0+2*1+1*0=2
010 同上 2
110 对应 4*1+2*1+1*0=6
10010110(2)=226(8)

2.16进制与2进制

(1)16进制转2进制
口诀:每位除2取余得4位的2进制数,不足补0
 如图
【java基础】妙记进制转换-LMLPHP

(2)2进制转16进制
口诀:8421,每4位2进制数对应1位16进制数,是1则对应,是0则是零,然后相加
100101100
(不足4位补0)0001 对应 8*0+4*0+2*0+1*1=1
0010 对应 8*0+4*0+2*1+1*0=2
1100 对应 8*1+4*1+2*0+1*0=12=C
100101100(2)=12C(16)

05-27 13:36