C++灵魂起源
第一课 进制
课程介绍
本课程是一套从逆向的角度去讲解C++的本质课程。涵盖软件安全、破解与防破解、外挂与反外挂原理以及病毒分析。
为什么要学习进制?
因为计算机只识别二进制,无论我们编写什么代码,最终都要变成二进制被计算机识别和执行。
什么是10进制?
10进制是由0123456789,10个符号组成的逢10 进1的一种进制,也是我们日常生活中接触的最多的一种进制,
10进制中没有10,10以后的数字(比如10、11、12等)只有0到9这个符号组成而来的。
什么是N进制?
由上可见,N进制就是由N个符号组成的一种,逢N进1的进制。有N个符号,但是不包括N。
生活中的常用进制有哪些?
24进制,24小时为一天。60进制,60秒为一分钟。12进制,12个月为一年,其实在我们日常的生活中,我们就已经接触了很多关于进制的东西,只不过我们没有去深入的了解。
进制练习
在2进制中,10+10=?
解:
首先我们个位相加,0+0=0
然后十位相加,1+1=2
但是在2进制中,不存在2,所以要进位,2除以2等于1余0
所以十位上的数是10,加上个位数上的0,得到100.
二进制转十进制
一个十进制的数123,首先我们要搞清楚这个数字的意义
1在百位,说明有100个1
2在十位,说明有10个2
3在个位,说明有1个3
故:123=1*100+2*10+3*1
换成10进制表达 既 123=1*进制*进制+2*进制+3
除了个位上的数,都是进位而来的。
那么一个二进制的数:111
二进制的111=1*2*2+1*2+1=7
这样2进制就转换成了10进制
PS:十进制转换成其他进制,用除法。
其他进制转换成十进制,用乘法。
那么二进制10000000000=十进制1024 是怎么得来的呢?
解:1、二进制转换成10进制用乘法,乘以进制。
2、1后面10个0,所以1*2*2*2*2*2*2*2*2*2*2=1024
十进制转二进制
之前说过,十进制转换成其他进制用除法。
十进制的3转成二进制,用3除以2=1余1,得到11.
除一次的很简单,但是除多次的就复杂了一些。
作业:十进制的12转换成二进制得到1100,这是怎么得到的呢?