Day 6 - 二进位会不会被禁位?

简介

今天要介绍的东西,是在编写程序的时候,可能需要具备的一个知识,但是好像不知道也不会影响那麽大(对於如果未来不是写系统或是後端的工程师),但是因为这东西从小提到大,却好像没有深入了解,因此对於数学不太熟练的我就努力的学习了一番。我也不会写到太难的东西(毕竟我自己也不会哈哈)。


进位制

对於我们一般台湾人的生活,最常接触到的就是十进位制还有六十进位制!但是什麽是进位制?

请问是因为台湾前阵子水很缺乏,需要禁止卫浴吗,禁卫制

还是因为疫情严峻,需要禁位,禁位制?

都不是。

首先我们来了解一下进位。

通常我们在小学开始,就会被教导 1 + 1 = 2 、1 + 2 = 3、1 + 3 = 4 ……当1 加到9的时候就会进位,这个进位方式,就是所谓的十进位制。

接下来另一个常见的进位制是时钟,当秒针转到 60 秒的时候,分针就会转动1 / 60 圈,也就是一分钟;而当分针转动60圈的时候,时针也会转动1 /60圈,也就是一个小时,这样的进位制称作六十进位制。

所以其实,日常生活中会用到很多有关数学的东西,他们也没有想像中的那麽可怕。


二进位

接下来要介绍的是二进位,一些略懂电脑的人们可能知道,在电脑的语言中是由0与1所组成的,但可能不太知道这些0 与 1 是怎麽运作的。

首先,拿十进位来举例,就是每当数字加到10的时候就会进位;同理来说,在二进位里面,每当数字加到2的时候就会进位。

例如1 再加 1 就会变成 10

再加 1 就会变成 11,如果这个时候再加 1 就会再进位变成 100

【二进位中的 1 - 32】

二进位 十进位 二进位 十进位
000 001 1 010 001 17
000 010 2 010 010 18
000 011 3 010 011 19
000 100 4 010 100 20
000 101 5 010 101 21
000 110 6 010 110 22
000 111 7 010 111 23
001 000 8 011 000 24
001 001 9 011 001 25
001 010 10 011 010 26
001 011 11 011 011 27
001 100 12 011 100 28
001 101 13 011 101 29
001 110 14 011 110 30
001 111 15 011 111 31
010 000 16 100 000 32

从上面可以看到,我以六个数字为一组来表示,当十进位是0时,二进位是 000 000 ,但是十进位到4 的时候,二进位就会从000 011进位到 000 100,之後也以此类推。其实有个更好的判断方式,就是从右边数来第n个数字当作2(n-1) 次方,就拿19来举例。

我们可以把19拆解成1 x 16 + 1 x 2 + 1 x 1就等於是1 x 2^4 + 1 x 2^1 + 1 x 2^0,如果回到二进位的那一串数字来看:

【19的二进位与二的次方对照表】

6 5 4 3 2 1
0 1 0 0 1 1
2^5 2^4 2^3 2^2 2^1 2^0
=32 =16 =8 =4 =2 =1

这样的方式也可以对应到任何的以 R 为底的近位制,像是4进位、8进位、16进位,或7进位、23进位都是可以的。


冷知识

你知道为什麽时间上要用60 进位来计算吗? ~~每日头条~~

(A) 因为60很酷

(B) 因为60等分比较好切

(C) 因为60不多也不少 刚刚好

答案其实都对!

如果把60做因式分解:1、2、3、4、5、6、10、12、15、20、30、60,代表,60这个数字可以拆解成很多种组合,也就是1个小时,可以拆解成1个60分、2个30分、4个15分、5个12分、6个10分、10个6分、12个5分、15个4分、30个2分、60个1分;但若是用50做因式分解:1、2、5、10、25、50,等於1个小时顶多只能拆解成1个50分钟、2个25分、5个10分、10个5分、25个2分、50个1分。相对来说如果以50分为一小时,可以拆解的方式更少,但在日常生活中,时间很长被拆解成不同长度,像是10分(1/6小时)、15分(1/4小时)、20分(1/3小时),但是如果今天是用50分为一个小时,你的1/4小时可能会叫作12.5分钟,1/3小时会被叫作16.6666666分钟。

另外,由於在制作时钟的时候,因为从前难以准确分出6或是12以外的切法。在一个圆中,最好切的方式就是将它像切 pizza 一样切成6等份,然後再从每份的中间切下去就会得到12份。


小结

这次先简单的介绍一下进位制是如何运作的,而里面比较重要的当然就是二进位了! 在下一篇会介绍一下二进位的进阶版,4进位、8进位;还有16进位。


<<:  找LeetCode上简单的题目来撑过30天啦(DAY3)

>>:  [Day03] Vue i18n - Message Format Syntax

Day 11 Implement audio wave generator

Implement audio wave generator using the Mbed API ...

DAY13 特徵工程-资料标准化与降维

一、为何要做标准化 以最简单的方式来说,一份资料中,不可能每个特徵的范围都是一样的,当我们需要拿两笔...

CSS基础介绍(3)

来轻松聊聊 终於来到基础CSS的最後一篇,这次要分享的是CSS的变量。 想像一个情境,你正在负责一个...

[Day07] Tableau 轻松学 - 开始画面

前言 每个软件的开始画面,或多或少会有些好用但总是被我们忽略的功能,等我们使用一段时间後才从别人那边...

Day 30 结语和 Azure 的学习资源- 打完魔王之後的最终章通常是剧情动画

结语和 Azure 的学习资源- 打完魔王之後的最终章通常是剧情动画 从朋友开口问我 Azure 的...