二进制

来源:互联网 发布:js 计算时间差年月日 编辑:程序博客网 时间:2024/05/14 17:17

进制:
0,1,2,3,4,5,6,7,8,9
1234 = 1 * 10^3 + 2 * 10^2 + 3 * 10^1 + 4 *10^0 = 1234    十进制表示方法  权


0,1,2,3,4,5,6,7
01234 = 1 * 8^3 + 2 * 8^2 + 3 * 8^1 + 4 *8^0 = 668  八进制表示方法


0,1
0000 0001 0101 0101 = 2^8 + 2^6 +2^4 + 2^2 +2^0 = 341   二进制表示方法


0,1,2,3,4,5,6,7,8,9,a,b,c,d,e,f
0xffff = 15*16^3 + 15*16^2 + 15*16^1 + 15*16^0 = 65535 十六进制表示方法






不同的进制之间如何进行转换:


十进制转 各种进制.


碾除法(被除数变为零时,计算结束. 从下往上读取余数,就是我们要的结果.)


举例:
99 转化成 八进制
99 / 8 = 12 余 3
12 / 8 = 1  余 4
  1 / 8 = 0  余 1     计算结束 最终结果(余数从下往上数)为:0143




49转化成 十六进制
49 / 16 = 3 余 1
3 / 16 = 0 余 3     计算结束 最终结果(余数从下往上数)为:0x31
 
126 / 16 = 7 余 e
7 / 16 = 0 余 7      结果: 0x7e




117转化成 二进制
117 / 2 = 58 余 1
58 / 2 = 29 余 0
28 / 2 = 14 余 1
14 / 2 = 7  余 0
  7 / 2 = 3  余 1
    3 / 2 = 1  余 1
  1 / 2 = 0  余 1    计算结束,最终结果(余数从下往上数)为: 01110101 
     (二进制表示时,至少写8位,不足八位用0补充)




八进制 转 十六进制:  
二进制 转 八进制
十六进制 转 二进制
原则上,我们都先转为十进制过渡.


但也有规律:
每一位十六进制数都可以表示成4位的二进制数,例如:


0xffff = 1111 1111 1111 1111  
0x123 = 0000 0001 0010 0011
0x12345 = 0001 0010 0011 0100 0101 = 0000 0000 0000 0001 0010 0011 0100 0101


每一位八进制数都可以表示成3位的二进制数,例如:
0123 = 001 010 011 = 0000 0000 0101 0011
0567 = 101 110 111 = 0000 0001 0111 0111
06773 = 110 111 111 011 = 0000 1101 1111 1011




经典题目:用十条狗找出1000瓶药水中有毒的那一瓶.




 








原创粉丝点击