进制转换
任意进制到十进制的转换
公式:系数*基数的权次幂相加
-
系数:每一【位】上的数
-
奇数:几进制
-
权:从数值的右侧,从0开始,逐个+1
十进制到任意进制的转换
公式:除基取余
使用源数据,不断地除以基数得到余数,直到商为0,再将余数倒着拼起来。
快速进制转换法
二进制转十进制
- 8421码(BCD码Binary-Coded Decimal)
128 | 64 | 32 | 16 | 8 | 4 | 2 | 1 |
---|
对应1位相加即可得到十进制
二进制转八进制
将三个二进制看作一组,再进行转换
例:111100:最终转换为八进制结果为0D74
二进制转十六进制
将四个二进制看作一组,再进行转换
例:00111100,转换为16进制:0X3C
二进制的原码、补码、反码
原码:
二进制定点表示法,最高位为符号位,0表示正,1表示负,其余位表示数值的大小。
反码:
正码的反码与其原码相同;负数的反码是对其原码逐位取反,符号位除外。
补码:
正数的补码与其原码相同;负数的补码是在其反码的末位+1。
例:
-7
原码:1 0000111
反码:1 1111000
补码:1 1111001
位运算
位运算是对于二进制来说的运算
0表示false,1表示true
-
位与(&):全都为true时才为true
-
位或(|):有一个为true时就为true
-
位异或(^):相同为false,不同为true
-
取反(~):全部取反
位移运算符
<<:有符号左移运算:二进制位向左移动,左边符号位丢弃,右边补齐0。
向左移动几位,就是乘以2的几次幂
>>:有符号右移运算:二进制位向右移动,左侧用符号位补齐,右侧最后一位丢弃
向右移动几位,就是除以2的几次幂
>>>:无符号右移运算符:无论符号位是正数还是负数,都用0进行补位
一个数被同一个数异或两次,不会发生变化