数据宽度
数学上的数字,是没有大小限制的,可以无限的大。但在计算机中,由于受硬件的制约,数据都是有长度限制的(我们称为数据宽度)。
开头第一位数字为1不一定是负数,取决于怎么规定
- 若规定为0~15,则为整数
- 若规定为-8~7,则为负数(其他位数的数同理)
计算机最小的位数是8位,这里的4位是方便举例
- 几个重要的计量单位
- BYTE 字节 8bit
- WORD 字 16bit 2字节
- DWORD 双字 32bit 4字节
逻辑运算
-
或运算(or |) 有一个为1就是1
-
与运算(and &)两个都为1才是1
-
异或运算(xor ^) 两个不一样得到1
-
非运算 (not !) 1得到0 0得到1
-
移位运算 (<< >>)
1. cpu中2+3如何运算
1. X: 0010 Y: 0011
X与Y异或得到0001 将其存于R(0001)
2. X&Y并<<1 判断是否运算结束,若得到的数为0,则运算结束,结果为R
这里 X&Y=(0010) <<1=(0100)
3. 将R(0001)放于X,2中得到的(0100)放于Y,重复1
X^Y=0101 R(0101)
判断是否结束: X&Y=(0000)
结束,结果为R(0101)(5)
2.获取某个值的第N位
例如,获取10的第2位
1010
0010
---------
0010 = 1
总结: num的第n位为num&(1<<(n-1))
3.最简单的加密算法--异或
原数14
密钥4
加密后为14^4=(1000)=8
解密8^4=(1100)=14
Comments | 0 条评论