逆向-数据宽度与逻辑运算

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/qq1119278087/article/details/60629559

本学习过程参考滴水逆向第三期视频
[toc]

数据宽度

  • 数学上的数字,是没有大小限制的,可以无限大。但是在计算机中,由于受硬件的限制,数据都是由长度限制的,我们称为数据的宽度,超过宽度的数据会被丢掉

    这里写图片描述

  • 两个本质:

    1.计算机啥都不认识,只认识0和1
    2.如果你存的数超过了存储界限,计算机会毫不犹豫的扔掉–这也是数据宽度的本质

除此以外,我们定义的无符号数、有符号数,完全是我们自己定义的,计算机根本不知道,它只知道0和1,以及存储的数据宽度。

计算机存储的容器:

BYTE 字节 8BIT 1字节
WORD 16BIT 2字节
DWORD 双字 32BIT 4字节

逻辑运算

当我们知道计算机中存数后,接下来就是数据的运算

拓展知识:数据电路逻辑运算

1.或运算(or |) 只要由一个是1就是1
2.与运算(and &)两个都是1才是1
3.异或(xor ^)不一样才是1
4.非(not !)1是0 0是1

CPU如何计算2+3?
汇编是这样:
mov eax 2
add eax 3

计算机计算真正的本质:电路运算
1.把2存到一个容器中 x 0010
2.把3存到例外一个容器中y 0011
3.对x和y进行异或运算,并把结果存到容器r中
blob.png
4.对x和y进行与操作,并对结果进行左移1位
blob.png
5.如果4步骤中的结果为0,则r为计算结果;如果不为0,则把r放入x容器里,4步骤结果放入y容器里,循环1-4步骤

猜你喜欢

转载自blog.csdn.net/qq1119278087/article/details/60629559