> 文档中心 > 逆向分析一进制运算笔记

逆向分析一进制运算笔记

参考文档:

什么是算术运算?什么是关系运算?什么是逻辑运算?_月已满西楼的博客-CSDN博客_什么是算术运算

基本逻辑运算_qq_35912930的博客-CSDN博客_基本逻辑运算

(2条消息) 计算机 常用的逻辑运算有哪些,常用布尔逻辑运算符有哪些_百越闲人的博客-CSDN博客

(2条消息) 进制问题/输出_愿风吹散愿心静远的博客-CSDN博客

(2条消息) 二进制、十进制、八进制、十六进制 各代表的英文字母是什么_AllenLeungX的博客-CSDN博客_进制的字母表示

(2条消息) microsoft visual c++ 6.0安装_xyq_rachel的博客-CSDN博客_c++6.0

引言:

进制与我们生活是息息相关,比如时钟,星期,四季等,而计算机也离不开进制,计算机是通过二进制进行操作和运算的。

我们为什么要学习进制?

方便我们了解计算机,了解计算机的运行,为以后的学习打下基础。

什么才是正确的学习方法?

忘掉呆板的十进制!"若想找到,必先忘记",说到进制,其实大家都会,只是生活中的运用把其它的进制都丢弃了,只留下十进制,本文主要带我们了解各种进制,找回应有的记忆。

应掌握的:

1. 各种进制的书写方法

2. 进制间的运算

3. 计算机中负数的表示

4. 布尔代数

易犯错误:

1. 总是以十进制为依托去考虑其他进制

2. 其他进制间判断大小时先转换成十进制

3. 负数与符号

一些例子:


二进制

2只鞋=一双鞋;2只袜子=一双袜子;2只手套=一双手套;


三进制

3个月=一个季度


四进制

4个季度=一年


五进制

一只手有5个手指

一只脚有5个脚趾

五行相克五个一轮回


六进制

6个月=半年


七进制

7天=一周


十二进制

12双鞋袜=一打鞋袜

12瓶啤酒 = 一打碑酒

中国生肖12个一轮换

一天12个时辰

一年12个月


十六进制

古时16两为一斤


二十四进制

24小时=一天


二十八进制

平年的二月份只有28天


二十九进制

润年的二月份则有29天


三十进制

每年的4、6、9、11月份是30天


三十一进

每年1、3、5、7、8、10、12月份是31天


六十进制

60秒=一分钟

60分钟=一小时

60分=一度(角度)


三百六进制

360度=一周


1.数据进制

1.1

先看10 进制的 0-100

0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100

从上面印象中我们可以给十进制下个定义: 十进制是由 0、1、2、3、4、5、6、7、8、9 十个符号组成,逢十进一 。

1.2

用九进制写出十进制的 101 个元素

0 1 2 3 4 5 6 7 8 10 11 12 13 14 15 16 17 18 20 21 22 23 24 25 26 27 28 30 31 32 33 34 35 36 37 38 40 41 42 43 44 45 46 47 48 50 51 52 53 54 55 56 57 58 60 61 62 63 64 65 66 67 68 70 71 72 73 74 75 76 77 78 80 81 82 83 84 85 86 87 88 100 101 102 103 104 105 106 107 108 110 111 112 113 114 115 116 117 118 120 121

可知九进制是由0、2、3、4、5、6、7、8九个符号组成,逢八进一。

1.3

用七进制写出十进制的 101 个元素:

0 1 2 3 4 5 6 10 11 12 13 14 15 16 20 21 22 23 24 25 26 30 31 32 33 34 35 36 40 41 42 43 44 45 46 50 51 52 53 54 55 56 60 61 62 63 64 65 66 100 101 102 103 104 105 106 110 111 112 113 114 115 116 120 121 122 123 124 125 126 130 131 132 133 134 135 136 140 141 142 143 144 145 146 150 151 152 153 154 155 156 160 161 162 163 164 165 166 200 201 202

可知七进制是由 0、1、2、3、4、5、6 七个符号组成,最小是 0,最大是 6,逢七进一 。

1.4

现在给十一进制下个定义: 十一进制是由 0、1、2、3、4、5、6、7、8、9 、A共十一个符号组成,最小是 0,最大是 A,逢十一进一。

用十一进制写出十进制的 101 个元素:

0 1 2 3 4 5 6 7 8 9 A 10 11 12 13 14 15 16 17 18 19 1A 20 21 22 23 24 25 26 27 28 29 2A 30 31 32 33 34 35 36 37 38 39 3A 40 41 42 43 44 45 46 47 48 49 4A 50 51 52 53 54 55 56 57 58 59 5A 60 61 62 63 64 65 66 67 68 69 6A 70 71 72 73 74 75 76 77 78 79 7A 80 81 82 83 84 85 86 87 88 89 8A 90 91

1.5

现在给三进制下个定义:三进制是由 0、1、2 共三个符号组成,最小是 0,最大是 2, 逢三进一。

用三进制写出十进制的 101 个元素:

0 1 2 10 11 12 20 21 22 100 101 102 110 111 112 120 121 122 200 201 202 210 211 212 220 221 222 1000 1001 1002 1010 1011 1012 1020 1021 1022 1100 1101 1102 1110 1111 1112 1120 1121 1122 1200 1201 1202 1210 1211 1212 1220 1221 1222 2000 2001 2002 2010 2011 2012 2020 2021 2022 2100 2101 2102 2110 2111 2112 2120 2121 2122 2200 2201 2202 2210 2211 2212 2220 2221 2222 10000 10001 10002 10010 10011 10012 10020 10021 10022 10100 10101 10102 10110 10111 10112 10120 10121 10122 10200 10201

总结:

数的本质是数出来的 。

进制其实是 N 种符号组成的。

一句话:进制是由元素组成的,N 进制就是有 N 个元素组成,逢 N 进一 。

2 .进制运算

任何一种进制,他自身就是一个完美的体系结构,直接能加减乘除开方 。

我们学到的最多的0,1,2,3,4,5,6,7,8,9 是阿拉伯人的符号。零,一,二,三……

用一进制从 0 写到十进制的 20,结绳记事用的是一进制。 0 00 000 0000 …… 阴阳八卦就是二进制,宇宙中最和谐最完美的进制就是二进制。有和无,白和黑,无和点(点可以构成画,画可以构成所有 )

2.1

用二进制从零写到十进制的 100

0 1 10 11 100 101 110 111 1000 10011010 1011 1100 1101 1110 1111 10000 10001 10010 10011 10100 10101 10110 10111 11000 11001 11010 11011 11100 11101 11110 11111 100000 100001 100010 100011 100100 100101 100110 100111 101000 101001 101010 101011 101100 101101 101110 101111 110000 110001 110010 110011 110100 110101 110110 110111 111000 111001 111010 111011 111100 111101 111110 111111 1000000 1000001 1000010 1000011 1000100 1000101 1000110 1000111 1001000 1001001 1001010 1001011 1001100 1001101 1001110 1001111 1010000 1010001 1010010 1010011 1010100 1010101 1010110 1010111 1011000 1011001

2.2各进制乘法表

二进制

1*1 = 1

三进制

1*1 = 1 2*1=1 2*2=11

四进制

1*1=1 2*1=2 2*2=10 3*1=3 3*2=12 3*3=21

五进制

1*1=1 2*1=2 2*1=4 3*1=3 3*2=11 3*3=14 4*1=4 4*2=13 4*3=22 4*4=31

六进制

1*1=1 2*1=2 2*2=4 3*1=3 3*2=10 3*3=13 4*1=4 4*2=12 4*3=20 4*4=24 5*1=5 5*2=14 5*3=23 5*4=32 5*5=41

七进制

1*1=1 1*2=2 2*2=4 1*3=3 2*3=6 3*3=12 1*4=4 2*4=11 3*4=15 4*4=22 1*5=5 2*5=13 3*5=21 4*5=26 5*5=34 1*6=6 2*6=15 3*6=24 4*6=33 5*6=42 6*6=51

九进制

1*1=1 2*1=2 2*2=4 3*1=3 3*2=6 3*3=10 4*1=4 4*2=8 4*3=13 4*4=17 5*1=5 5*2=11 5*3=16 5*4=22 5*5=27 6*1=6 6*2=13 6*3=20 6*4=26 6*5=33 6*6=40 7*1=7 7*2=15 7*3=23 7*4=31 7*5=38 7*6=46 7*7=54 8*1=8 8*2=17 8*3=26 8*4=35 8*5=44 8*6=53 8*7=62 8*8=71

十二进制

1*1=1 2*1=2 2*2=4 3*1=3 3*2=6 3*3=9 4*1=4 4*2=8 4*3=10 4*4=14 5*1=5 5*2=a 5*3=13 5*4=18 5*5=21 6*1=6 6*2=10 6*3=16 6*4=20 6*5=26 6*6=30 7*1=7 7*2=12 7*3=19 7*4=24 7*5=2b 7*6=36 7*7=41 8*1=8 8*2=14 8*3=20 8*4=28 8*5=34 8*6=40 8*7=48 8*8=54 9*1=9 9*2=16 9*3=23 9*4=30 9*5=39 9*6=46 9*7=53 9*8=60 9*9=69 a*1=a a*2=18 a*3=26 a*4=34 a*5=42 a*6=50 a*7=5a a*8=68 a*9=76 a*a=84 b*1=b b*2=1a b*3=29 b*4=38 b*5=47 b*6=56 b*7=65 b*8=74 b*9=83 b*a=92 b*b=101

2.3 乘法与加法

我们把七进制的乘法表写出来: 1*1 = 1 1*2 = 2 ,2*2 = ?在 1*2 的基础上加 2 为 4 ;2*3 = ?在 2*2 的基础上再加 2.

在这里,乘法演变成加法。

所以很快得出七进制的乘法表:

1*1 = 1 1*2 = 2 2*2 = 4 1*3 = 3 2*3 = 6 3*3 = 12 1*4 = 4 2*4 = 11 3*4 = 15 4*4 = 22 1*5 = 5 2*5 = 13 3*5 = 21 4*5 = 26 5*5 = 34 1*6 = 6 2*6 = 15 3*6 = 24 4*6 = 33 5*6 = 42 6*6 = 51

2.4

计算机只会加法,而我们现实中为了计算方便所以建立了乘法表。

有的人说等于 0。那么,如果我使用 0 作为一进制的符号,则有: 00 + 000 = 00000 , 000 - 00 = 0, 那么 000 - 000 = ?

说明:其实我们不用纠结于算数的结果,111-111 = 空,这个空可以用其他符号代替,只要不是该进制使用过的符号即可。

3.1书写形式

二进制有两种,二进制本身是一种,还有一种是二进制的书写形式。书写形式有很多种: 一位一位的书写,两位两位的书写,还是三位三位的书写,看具体用途。

如果写二进制四位四位的书写:

二进制从 0000 写到 1111,如果分别改成改成 16 个符号。

0000 0001 0010 0011 0100 0101 0110 0111 1000 1001 1010 19 1011 1100 1101 1110 1111

按照这种新的书写方式,那么我们发现在进位中,要满 16 才进位。中国古代就知道用二进制数,并知道四位四位的书写。这就是我们平时说的半斤八两,其实就是二进制四位四位的书写导致的结果 。

3.2数据宽度

数学上的数无论多长都能表示出来,不存在宽度的。而算盘宽度是有限的。凡是涉及到机器上的数,宽度总是有限的,计算机中的数是用电路表示的,计算机成本是有限的,所以表示宽度是有限的。

这里为了书写方便我们只写 8 个位: -1=0-1 00000000 -00000001 计算机在计算数之前,要规定这个数有多宽。-1 是 0xFF。

再比如给定的一个数 0x123456789ABC,如果规定它的宽度为 32 位(这里指的 32 通常是二进制的 32 位),那么该数值的有效值为 0x56789ABC.如果运算结果超过,其宽度将被略去,只保留有效位。例:设给定的数值宽度为 8 位(二进制),则可以表示的最大值为 0xFF(11111111B)。 此时,0x81+0x80= 1000 0001B+ 1000 0000B= 1 0000 0001(B) = 0000 0001 (B) = 0x1。

总结: 计算机是定宽的。

4 .逻辑运算

一个二进制数 1111 1111 1111 1111B 我们用四位书写的方式 FFFF 这样写比较简单,而计算机除了算术运算外,还有逻辑运算,只有二进制才能进行逻辑运算。

4.1

逻辑运算中只有错与对,成与败两个结果(也就是 0 和 1)。

或运算: 0+0=0 0+1=1 1+1=1(1+1=2 不等于 0,就是 1) “+”等价于“或”,计算机中使用“|”符号代替。汇编语言使用“OR”代替

与运算: 0*0=0 0*1=0 1*0=0 1*1=1 “*”等价于“与”,计算机中使用“&”符号代替。汇编语言使用“AND”代替。

异或运算:

0-0=0 1-0=1 0-1=1 1-1=0 “-”等价于“异或”,计算机中使用“^”符号代替。汇编语言使用“XOR”代替。


通俗理解:

或运算 : 想要过一条河,只需要走过其中的一座桥。

与运算:比如一个家庭,只有丈夫和妻子都有生育能力,才能有孩子。

异或运算:在法院势均力敌的两方无法分出胜负,只有一方高于另一方,才有胜负。


符号表示:

或运算(|):只要有一个是 1,就是 1,其它为 0

与运算(&): 两个为 1 才是 1,其它为 0

异或运算(^):相同的为 0,不同的为 1


4.2学习计算机必不可少的软件 VirtualC++6.0

VirtualC++6.0是一款语言编程软件,简称VC或者VC6.0,是微软推出的一款C++编译器,将“高级语言”翻译为“机器语言(低级语言)”的程序。

4.2.1 VirtualC++6.0下载安装

下载地址:http://www.gezila.com/ruanjian/yingyong/72144.html

microsoft visual c++ 6.0安装向导:

1、将拷贝来的压缩包解压,右击文件选择“解压文件”,选择“路径”进行解压。

注意事项:不用管是否是光盘映像文件,直接点击右击解压即可。

2、解压完成后,选择“VC6CN”。

注意事项:VC6CN为中文版,VC6EN为英文版。

3、在诸多软件中找到可运行.exe软件,“SETUP.EXE”。

4、如果出现以下窗口,表示计算机与此软件兼容性存在问题,不过不必担心,正常的笔记本都会出现此种情况,点击“运行程序”。

5、继续点击“下一步”。

6、认真阅读完协议后,点击“接受协议”,点击“下一步”。

7、此处“姓名”与“公司名字”可以填写可以不填,随意即可,一般“直接使用默认的”点击“下一步”。

8、安装“Visual C++ 6.0 中文企业版”。

9、则又可能出现兼容性问题,照样继续运行。

10、接下里连续的三个窗口点击“继续”→“确定”→“是”。

11、此处选择“Typical”继续安装。

注意事项:“Typical”表示安装的同时还有其他相关软件会给你安装进去,能够使你的电脑更加融洽的运用此软件。

12、打钩后点击“OK”。

13、等待安装。

14、点击确定则“VC++6.0成功安装”。

4.2.2Visual C++6.0使用

现在我们新建一个工程,步骤如下:

1.File->new,弹出下面窗口,点击 Win32 Console Application,然后在 Project name 框中填入工程名,例如“HelloWorld”,点击 OK,如图 :

​​​

2.在图 1-8 中选择第三项:“A ’Hello,world’ application”,然后点击 “Finish”

​​​

3.操作: 1> 按 F11 键单步跟踪每一条语句,并打开寄存器窗口查看寄存器的值变化

​​​

课后总结: 二进制实现了逻辑运算和算术运算的统一。


🏹每日分享🏹:

      人不过是一根芦苇,是自然界最脆弱的东西,但他是一根会思考的芦苇。不需要整个宇宙武装起来才能毁灭他,一口气、一滴水就足以剥夺他的生命。即使宇宙要毁灭他,他也比致他于死地的宇宙要高贵得多,因为他知道自己将要死亡,他知道宇宙相于对他的优势,而宇宙对此一无所知。 所以,我们所有的尊严就在于思想。正是因为它,我们才可以鼓舞自己,而不是通过我们所无法填充的空间和时间。所以,让我们努力好好思想,这是道德的原则。

一《人是一根会思考的芦苇》