二进制和位运算
进制介绍
对于整数,有四种表示方式: 1)二进制:0,1 ,满 2 进 1,C 语言中没有二进制常数的表示方法。 2)十进制:0-9 ,满 10 进 1。 3)八进制:0-7 ,满 8 进 1. 以数字 0 开头表示。 4)十六进制:0-9 及 A-F,满 16 进 1. 以 0x 或 0X 开头表示。此处的 A-F 不区分大小写。[A->10 B->11 C->12 D->13 E->14 F->15 ] 如:0x21AF +1= 0X21B0
进制的图示
进制的转换
二进制转十进制
规则:从最低位开始,将每个位上的数提取出来,乘以2的(位数-1)次方,然后求和
案例:将二进制 1011 转换成十进制 1011 -> 1 * 2^0 + 1 * 2^1 + 0 * 2^2 + 1 * 2^3 = 1 + 2 + 0 + 8 = 11
八进制转十进制
规则: 从最低位开始,将每个位上的数提取出来,乘以8的(位数-1)次方,然后求和
案例:将0123转成十进制的数
0123 -> 3 * 8^0 + 2 * 8^1 + 1 * 8^2 + 0 * 8^3 = 3 + 16 + 64 = 83
十六进制转十进制
规则:从最低位开始,将每个位上的数提取出来,乘以16的(位数-1)次方,然后求和。
案例:请将0x34A转成十进制的数
0x34A -> 10 * 16^0 + 4 * 16^1 + 3 * 16^2 = 10 + 64 + 768 = 842
十进制转二进制
规则: 将该数不断除以2,直到商为0为止,然后每步得到的余数倒过来,就是对应的二进制
案例:将56转成二进制
56 -> 111000
十进制转八进制
规则: 将该数不断除以8,直到商为0为止,然后每步得到的余数倒过来,就是对应的八进制
案例:将156转成八进制
156 -> 234
十进制转十六进制
规则: 将该数不断除以16,直到商为0为止,然后每步得到的余数倒过来,就是对应的十六进制
案例:将356转成十六进制
356 -> 0x164
二进制转八进制
规则: 从低位开始,将二进制制数每三位一组,转成对应的八进制数即可。
案例:请将11010101转成八进制
如果左边不够三位,可以借一个0
11 010 101 -> 0325
二进制转十六进制
规则: 从低位开始,将二进制制数每四位一组,转成对应的八进制数即可。
案例:请将11010101转成十六进制
1101 0101 -> 0x D5
八进制转二进制
规则: 将八进制数每一位,转成对应的一个三位的二进制数即可
案例:请将0237 转成二进制
0237 = 10 101 111
十六进制转二进制
规则: 将十六进制数每一位,转成对应的一个四位的二进制数即可
案例:请将0x23B 转成二进制
B = 11 -> 1011
0x23B = 10 0011 1011
|