上一篇介绍了如何利用2进位来表示10进位的数字,这次则要再进阶的介绍一下4、8、16进位。在下一篇会讲解一下这些进位在电脑里面是怎麽被运用的。
4进位顾名思义,就是每当数字到4的时候就要进一位。
例如:
【4 进位】
10进位 | 4进位 | 可以想成 |
---|---|---|
21 | 0 111 | 1 * 16 + 1 * 4 + 1 * 1 |
64 | 1 000 | 64 ( 4的3次方 ) |
15 | 0 033 | 3 * 4 + 3 * 1 |
81 | 1 101 | 1 * 64 + 1 * 16 + 1 * 1 |
8 进位其实也就是当数字到 8 的时候就要进位。7 → 8
要进位;63 → 64
要进位;511 → 512
要进位,以此类推。
例如:
【8 进位】
10进位 | 4进位 | 可以想成 |
---|---|---|
21 | 025 | 2 * 8 + 5 * 1 ( 8 ^ 0) |
64 | 100 | 1 * 64 |
15 | 017 | 1 * 8 + 7 * 1 |
81 | 121 | 1 * 64 + 2 * 8 + 1 * 1 |
8 进位其实也就是当数字到 8 的时候就要进位。15 → 16
要进位;255 → 256
要进位,以此类推。
但是要注意的是,在16进位里面数字会这样表示:
16进位 : 0 1 2 3 4 5 6 7 8 9 10 A B C D E
对应到 : 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
例如:
【16 进位】
10进位 | 4进位 | 可以想成 |
---|---|---|
21 | 015 | 1 * 16 + 5 * 1 |
64 | 040 | 4 * 16 |
15 | 00E | 15 * 1 |
81 | 051 | 5 * 16 + 1 * 1 |
512 | 200 | 2 * 16^2 (256) |
可以看到在16 进位中15会被表示成 E 。
这是因为在2进位中,如果今天要存入一个很大的数字,就只能用一大串数字来储存,但是4进位或甚至16进位可以在更少的数列中储存更多的资讯。
可以举一个例子:
如果今天要在电脑里面存入一个数字 9987
我们可以把这个数字拆解成
8192(2^13) + 1024(2^10) + 512(2^9) + 256(2^8) + 2(2^1) + 1(2^0)
如果以二进位来记录的话会长成这样:
010 0111 0000 0011
如果把它改成8进位会长怎样呢?
可以把数字拆成:
2 * 4096(8^4) + 3 * 512(8^3) + 4 * 64(8^2) + 3 * 1(8^0)
所以以8进位表示会变成:
23403
会节省了很多的时间!
那今天如果要直接换算一个数字,然後把它换成其他的进位制,总不可能像上面一样要先因式分解,再一个一个的算吧!
其实有一个方式,可以换算10进位与其他进位:
用短除法除想要的数字 例如:
要把(58)10进位
变成2进位
就可以把
58 / 2 = 29 mod 0
29 / 2 = 14 mod 1
14 / 2 = 7 mod 0
7 / 2 = 3 mod 1
3 / 2 = 1 mod 1
1 / 2 = 1 mod 1
就可以把它写成 : 111010
你看,是不是很轻松!
如果今天要把2进位换成8或是16进位呢?
这时候只要使出画线大法就好了。
例如:
2进位
:10111010011
要换成8进位的话,就要从最小的开始,每三个画一条线:
2进位
:10 111 010 011
这时候就可以把对应到2进位的值换成8进位的值,就会变成:
8进位
:2 7 2 3
那如果是要换算成16进位的话,就要改成四个画一条线:
2进位
:101 1101 0011
16进位
: 5 D 3
这样就完成了!
那如果要换回来,就是把16进位换成每四个一组的2进位:
16进位
: A 5 4
2进位
: 1010 0101 0100
这样就可以换回来了!
这些进位制有时候会搞倒我,因为我的数学实在不太行:(
但我还是进我的全力来搞懂他们,另外还有一些补数的部分,其实我还不是很了解,大家有空的话可以看看杰哥的文章,他写的hen好!
<<: Day19 - GitLab CI 上传 Image 到 Google Container Registry
>>: Day4 - 2D渲染环境基础篇 I - 成为Canvas Ninja ~ 理解2D渲染的精髓
前言 因为资料库基本上可以分成 SQL 跟 NoSQL 两大类,昨天讲完 SQL injection...
What and Why 在串接对方 webhooks 时通常会看到文件上提到 signature「...
一场全球大流行的 COVID-19 疫情,以及 H264、H265、VP8、VP9等影音压缩技术加...
-数位签章 使用您的私钥加密代码的指纹或对代码进行散列并使用您的私钥加密结果是生成数字签名的 改写...
天空中飘荡着各式各样的风筝,它们颤颤悠悠,互比高低,都在向着蓝天,向着白云,向着未来展翅飞翔。 《i...