滴水逆向听课日记2

1,日常中数字的个数是没有个数的,但在计算机中不是的,在计算机中储存个数是一定

一旦超出便会舍弃。

2,在四位宽度的计算机中,也就是计算机只能储存二进制的四位(0000 1111)

87
96
a5
b4
c3
d2
e1
f0


若是有符号位则分为(0000到0111)和(1110到1111)即若是无符号为 0000 1111(0~15)

0000000100100011010001010110011110001001101010111100110111101111
01234567-8-7-6-5-4-3-2-1

3,在八位宽度的计算机中,也就是计算机只能储存二进制的八位(0 到FF)

807f
。。。。。。
。。。。。。
ff0

若是有符号位则分为(0到7f)和(80到ff)即若是无符号为 0 ff(0~255)

01...7f8081...ff
01...128-128-127...-1

4,在我们实际生活中常用到的为X32位和X64位比较多

同理32位无符号为是(0到ffffffff)有符号为分为(0到7fffffff)和(8000到ffffffff)

5,计算机运算问题,首先需要明白计算机是不会加减乘除的他只会位运算即 或 非 与 异或

或运算(|)

即两个均为零时才为零,有一个唯一都为1  

            01101001

            01100110

 |——————————

             01101111

与运算(&)

两个相同才为一

            01101001

            01100110

 &——————————

             11110000

非运算(~)

零变为一,一变为零(非运算只需一个值)

                01010101

~——————————

                10101010

异或运算(^)

只有两个不同时才为一

            01101001

            01100110

 ^ ——————————

             00001111

6,明白以上位运算以后便可以知晓计算机是如何做加减乘除的啦

        举个例子  9+10=19

第一步转成二进制00001001   00001010
第二部进行异或运算

    00001001

    00001010

^——————

    00000011            保存 R(00000011)

进行与运算

判断是否全为零

是进行转进制输出R

否进行移位符左移

<<一位

    00001001

    00001010

&—————

    00001000   ——>00010000保存T(00010000)

再次进行异或运算

      00000011

      00010000

^——————

      00010011     (R与T的异或)

 

进行与运算

判断是否全为零

是进行转进制输出R

否进行移位符左移

<<一位

    00000011

      00010000

&——————

      00010011     (R与T的与)

结束00010011——>19

7,会了加法减法不就是手到擒来吗?至于乘除无非就是多加几次的问题,反正计算机不是你,

又没有小情需。

8,在我们正常情况下,我们会遇到一些求第几位是什莫的问题(在二进制中)这个若我们在

用小本本写就太拉跨了,既然我们学了位运算那岂不是可以有更好的方法那,这个是当然有的

很简单我们只需要一个与运算就能解决。

一个7fa的

第7位举例

7fa ——>0011111111010

           0011111111010

           000010000000(求第几位第几位就唯一)

 &——————————

           000010000000     👈那么第七位就为一

      

9,就以上位运算也诞生了最简单加密方式即通过位运算加密

     

加密 一串数字 54845484——>0101  0100   1000   0100

密匙     4

(密匙为一个数字

所以加密也为一个一个加密)

4——>0100

                0101  0100   1000   0100

                0100  0100    0100  0100

      ^——————————————

                0001  0000    1100   0000  👈1120

输出结果1120 或 0001  0000    1100   0000

当然要解密只需通过密匙在进行一次异或即可

密文 

0001  0000    1100   0000

4——>0100
密匙  4

               0001  0000    1100   0000

               0100  0100    0100  0100

      ^——————————————

                0101 0100    1000   0100   👈5484

结果0101 0100    1000   0100   👈5484

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值