书香 发表于 2023-5-18 19:25

【进制的理解】

本帖最后由 书香 于 2023-8-29 01:59 编辑

很多人可能听过计算机的最底层是2进制执行,但是原理并不知道,我们今天先不讨论那么复杂的问题,先讨论什么是进制

1+9=10,10并不是1个字符,而是2个字符,也就是说在10进制里面没有“10”这个字符,10需要由1和0来表示

那么8进制呢
1+1=2
1+5=6
1+6=7
1+7?
8进制就是满足8就进1位,所以1+7=10,好的,继续
10+1=11
10+5=16
16+1=17
17+1=?

    1 7
+    1
——————
    2 0
可能大家已经有一定的头绪了,那我们来讲一下什么是2进制,2进制就是满足2就进1位
1+0=1
1+1=?

      1
+    1
——————
    10

10+1=11
11+1=?

    1 1
+    1
——————
1 0 0
可能有些人要说,感觉cpu烧掉了,11+1不是应该=20吗,2进制没有2,在十进制中99+1=100大家知道,那11+1=100同样应该是很好理解的


重点:进制在代码中的应用
当一些软件涉及到内存操作的时候,会涉及一个叫内存地址的名词,内存地址是16进制的,也就是很多人常说的基质+偏移,这里是要做16进制的运算,但是编程语言只能进行10进制的运算,所以需要把16进制的内存地址先转为10进制,然后使用10制运算出结果后再变为16进制

(提示,易语言用户在精易模块的进制区有相关命令)


难点:什么是16进制
10进制里面没有一个字符可以表示10,但是在16进制里面使用A表示10,B=11,C=12,D=13,E=14,F=15
9+1=A
A+2=C
F+1=10
E+2=10
F+3=12

看到这里,很多人可能恍然大悟,终于知道内存中那些ABC是什么意思了

拓展点:
以以后如果看到一些教程代码出现AB1D这种类型的数据,基本可以推断是16进制的数据,很多数据可能都会使用16进制来表示,比如颜色,如#ccc

(点击返回课程目录:https://www.52hb.com/thread-58658-1-1.html)

JuStkK 发表于 2023-6-3 18:43

这可得多看几遍!!!

sjtkxy 发表于 2023-6-11 04:34

longge188 发表于 2023-8-26 09:30

谢谢分享
页: [1]
查看完整版本: 【进制的理解】