滴水逆向世界游行记(1)

        欢迎各位看官老爷随我这个小萌新一起参观滴水逆向的大世界,滴水逆向真不戳!!!

目录

1.进制

2.数据宽度

3.逻辑运算


1.进制

        首先我们还是要先提一下进制,有关进制的更多内容在我之前的一期文章里,那里面我已经介绍的十分详细啦。既然这样,我们为什么还要再提一下进制呢,当然,一定不是为了水字数!我们需要再次强调一下进制中的一些概念:最重要的就是进制的内容是随机的,是我们可以随意规定的,例如,八进制,就是由八个符号组成,逢八进一,而这八个符号我们人为可以随意规定,不需要弄成0,1,2,3,4等这种样子(这么做可以加强以后加密的难度),因此我们做一些进制的运算时,就必须要抛开我们熟悉的十进制!!!(这里大家可以通过随意的三个符号来练习三进制)

2.数据宽度

        我们都知道,在数学上的数字,是没有大小限制的,但在计算机中,受硬件的制约,数据都是有长度限制的(我们称为超过最多宽度的数据会被抛弃。)【就好比计算机是一个个容器,那容器已经装满,再装就只能倒掉】

        

4位宽度表示:假设计算机只能存储4位2进制数。

        首先我们先科普几个概念:无符号数就是正常的数,跟所举例子一样,计算机只会识别0和1。而有符号数则就跟数学中分为正数和负数一样,这些不是计算机本身规定的,而是操作者自己规定的。                                                                                                                                                     这个圆代表我们可以存储数字的范围从0到F。那我们假设将这个圆从中间竖着分为两边,左边代表的是负数,那它所能存储的范围就变成了0-7存正的,8-F存负数(F为最大的负数)。由此我们可以引出一个概念:四位二进制的数中,第一个为1开头的是负数。当然必须要操作者看成有符号的数。

8位宽度表示:假设计算机只能存储8位2进制数

        由此可以发现,当我们把它看成有符号数时,开头为1的是负数。

        接下来介绍几个重要的计量单位:                                                                                                       BYTE    字节    8BIT                                                                                                                           WORD    字      16BIT         2字节                                                                                                       DWOED   双字   32BIT       4字节

3.逻辑运算

        二进制有几种重要的逻辑运算:

or和| 分别是汇编c语言中的符号。下面三种顺序不变,都先是汇编再是c语言。

 现在我们可以来说明一下cpu是如何实现2+3的:                                                                          我们先拿出来三个容器:X,Y,R。因为计算机中是无法识别2和3的,因此计算机会将他们转换为0和1。我们将X:0010         Y:0011                                                                                               接下来对他们进行异或的运算得到0001。之后将这个数字储存在容器R中    R:0001。但计算机要对该结果进行检验,来判断本次运算结果是否结束,那么计算机就会对0010和0011进行与运算,得到结果为0010后,对其进行左移一位(将1向左移一位,变成0100),当这个结果全是0,才是我们所需要的结果,但我们得到的是0100,因此计算机会做下一步计算,将0001放入X,0100放入Y。继续进行上述计算,先异或,再与运算,最后看是否全为0。最后得到的结果为0101,转换为十进制就是5!!!

       如果我们想要获得某个值的第N位的值是多少:                                                                                 例如,我们想要知道10001111第四位是多少,那我们就可以将10001111与00001000做与运算,得到结果第四位是什么,那其第四位就是什么。

 我们来介绍一下简单的加密算法:

密钥是我们加密者所设立的一种加密方式,比如该例密钥为54,那么我们就需要两位两位的解密。 

我们首先将20和15和54分别变为二进制,再让20和15分别与54做异或运算,将所得结果转为十进制就是加密后的结果。之后我们要是想再得到加密前的信息,只需要将所加密的东西再与密钥进行异或运算,即可得到加密前的信息。

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值