编程学习基础--进制学习笔记整理(上)

关于笔记

这篇笔记的整理是围绕的进制的学习以及汇编基础的学习
为啥要学这些基础的东西嘞?
像是进制,从小学的计算机课中就开始出现在课本上了
大概就是学了很多年,也一直没搞清楚二进制于十进制的转化这样简答的事情。
由于在最近的阶段需要学习一些编程语言,来进一步完成对漏洞挖掘等相关知识的理解,所以我就准备从最基础的一些东西来学习,因为将来很长一段时间可能需要面对二进制以及十六进制形式的数据咯。当然通过汇编来进一步了解程序在运行过程中对硬件底层的实质原理等。所以开始补补基础的东东辽。之前在学习的过程中是通过jupyter笔记本来做记录的,虽然能完成笔记的记录作用但是总的来说还是有点散乱。


一.进制

1.计算机中只认识二进制,0和1 首先要理解什么是进制。

2.进制的学习姿势
进制学习过程中转化为其他进制来理解是错误的学习方式
例如学习二进制总把它转化为十进制来理解,进制之间本是相对独立的,要单独针对于某一个进制本身来学习及理解 忘掉进制间的转化,改变对于十进制过于熟悉的理解方式来转化学习其他进制。

3.进制的定义
例如八进制的定义:由八个符号组成,分别是0 1 2 3 4 5 6 7 逢八进一。 N进制定义:由N个符号组成,逢N进一。

4.进制的书写
1.查数(三进制来举例子) 2.进位☆
0 1 2      #当0 1 2 之后查第二行时 需要两个数字来表达先用00填空开始查数
10 11 12    #由于第一行已经到2 所以要进位则00中后面那个位进位查数为0第一个位再次向后查数为1
20 21 22    #由上一行结尾12 由2进位一位为0由1进位一位为2则下一个数为20
100 101 102   # 22进位 最后一位2查下一个数为0 第一个2查数为0进1 22的下一个数位100
110 111 112
120 121 122   # 112 2进位0进1 第二位1加进的1为2 120
200 201 202
所以总结来说,每一种进制的存在都是独立而完美的通过查数来完成进制的书写

二.进制运算

1.运算的本质也是查数。
例如8进制的运算

0 1 2 3 4 5 6 7 10 11 12 13 14 15 16 17 20 21 22 23 24 25 26 27 …
2+3=?则为从2开始向后查三个数为5
23=?为两个3或三个二向后查数为6
4+4=?为4开始向后查5个数为11
4
5=?从第一个5开始往后查三组5一共四组为24

三.二进制&十六进制

计算机为啥使用二进制?
计算机通电工作,电路只有两种状态:1(通电)0(未通电) 计算机储存的任何文件,接收任何指令都是0和1组成的。

二进制的书写
0000 0001 0010 0011 0100 0101 0110 0111 1000 1001 1010 1011 1100 1101 1110 1111
其中,依次一一对应的十六进制为:
0 1 2 3 4 5 6 7 8 9 A B C D E F

要习惯于十六进制因为十六进制一些方面来说是二进制的简写形式

十六进制存在在计算机中最大的价值就是二进制的简写形式,它方便人们的阅读。要习惯他们的对应关系例如:
6D 6F 64 65    依次对应的二进制:
0110 1101 0110 1111 0110 0100 0110 0101

四.数据宽度

1.什么时数据宽度?
在计算机中,由于受硬件的约束,数据都是有长度限制的,这个长度限制称之为数据宽度。
当然,超过最多宽度数据将被丢弃。

2.常见的数据宽度:
(1)位(bit) 只能存一个数值
(2)字节(byte)由八个位组成
(3)字(word)十六个位
(4)双字(doubleword)32位

3.字节存储的范围:
八个位当中从00000000到11111111 十六进制则为00到FF
即:
字节:0~0xFF
字 : 0~0xFFFF
双字:0~0xFFFFFFFF

如果储存的数据超过最大宽度,多余数据将被丢弃!
例如C语言中的 char x = 0x1FF (char)位 在这个实例当中 1会被丢弃
        int(32双字)

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值