二、为什么要用二进制
一、什么是二进制
逢二进一的计数规则
规律:数字 0,1
进位基权:2
权:8、4、2、1 --基数的幂次。
二、为什么要用二进制
成本最优的解决方案
三、如何用二进制 3.1二进制与十进制的转换 3.1.1、十进制转二进制
方法为:十进制数除2取余法,即十进制数除2,余数为权位上的数,得到的商值继续除2,依此步骤继续向下运算直到商为0为止。
比如7的二进制算法:
3.1.2、二进制十进制
方法为:把二进制数按权展开、相加即得十进制数。
3.2补码
利用无符号数模拟有符号数,能处理负数,节约成本。
以4位数为例展示补码原理
max + 1 = min
min-1=max
min - max =1
n + (max + 1)* 2 = n
n + (min)* 2 = n
n + (max + 1)* 2 * m = n
-n = ~n+ 1 (一个数取反加1 等于它的相反数,两头不符合)
补码的优缺点:
优点:可以支持任何有符号数的数学运算;
缺点:不能进行超范围计算,超范围就会溢出。
3.3十六进制
逢16进一的数
数字:1、2、3、4、5、6、7、8、9、a、b、c、d、e、f
权:1、16、256
二进制的简写(4位二进制可以与1位16进制相互转化)
0000 0
0001 1
0010 2
0011 3
0100 4
0101 5
0110 6
0111 7
1000 8
1001 9
1010 a
1011 b
1100 c
1101 d
1110 e
1111 f
3.4二进制运算 ~ 取反运算| 或运算 --有1则1,同0位0& 与运算 --有0则0,同一为1^ 异或运算相同为0,不同为1>>>逻辑右移位(高位补0,右移几位,高位补几个0,对负数而言无意义)>>数学右移位(高位是1补1,是0补0)