目录
前言
需要进制转换的基础
Byte 字节 8bit
Word 字 16Bit 2字节
DWord 双字 32Bit 4字节
一、数据宽度
计算机中由于受到硬件条件的制约,数据长度有限制,超过最多宽度的数据会被扔掉
“源码,补码,反码都是后来的人解释概念引进来的东西,自己用起来方便,对于我们理解概念没有实际作用“
1.设计算机只能存储4位2进制数
对于无符号的如图从0到F,然后F又回到0,但是我们要存贮有符号数,就把这个圆沿纵轴切一半
如果想让这个容器即存储正数,又存储负数,这个容器只能存储0到7正数,而8到f存负数
一般人经常说前面为1即为负数,正数里面第一位是1,如0-0111为正,1000-1111为负数,1011为-5
2.设计算机只能存储8位2进制数
这种存储无符号数可以从0存储到FF,正数可以从0到7F,负数从80到FF
3.设计算机只能存储16位2进制数
4.设计算机只能存储16位2进制数
无符号:0到8个f 有符号:0到7后面跟七个f (正数) 无符号:8后面七个0至八个f
计算机不知道正数、负数这个概念,它只管存。计算机有很多硬件容器。但是每一个容器都有界限,一旦超过这个界限就会把进位的值丢弃
二、逻辑运算本质
1.或运算
或运算:| or 只要一个为1便是1
2.与运算
与运算and &,两个都是1才是1
3.异或运算
异或:xor ^ 不一样为1
4.非运算
非(not !)1是0 0是1
三、逻辑运算应用
1.如何利用CPU进行2+3的运算?
汇编
Mov eax,2
add eax,3
涉及到电路层面:
容器x:0010 容器y:0011
进行异或 x xor y = 0001 将0001存进容器R:0001
进行与 x and y = 0010 (判断是否进行完运算)
0010左移 -> 0100(不为四个0,继续)
x:0001 放入x 0100放入y y:0100
进行异或 0001 xor 0100 = 0101 R:0101
0001 and 0100 = 0000
0000 左移 0000,四个0,计算完
此时,R的寄存器里为结果,即为0101
2.获取某个值的第N位
与A进行与运算,A所求的位是1,其他为0
3.加密算法
加密异或本身的逆运算就是异或
a ^ b = c 则可以推断出
c ^ b = a