数据宽度

数学上的数字,是没有大小限制的,可以无限的大。但在计算机中,由于受硬件的制约,数据都是有长度限制的(我们称为数据宽度)。

批注 20200609 151323.jpg

开头第一位数字为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

hhhhh