淺談“8421碼”的魅力

前言


????????最近在看C++的基礎(chǔ)知識疫稿,突然看到了十進(jìn)制轉(zhuǎn)換二進(jìn)制的算法狱庇, 突然讓我回憶起了之前經(jīng)常提及的“8421碼”鉴逞,讓我情不自禁地重新?lián)炱鹚乃惴ㄖ剑?dāng)時(shí)接觸這個(gè)算法,真的是驚為天人脏里,如今,再來學(xué)習(xí)虹曙,真的發(fā)現(xiàn)了其中非常有趣和魅力,現(xiàn)在和大家分享我的所獲吧8酢!



先簡單的介紹下击敌,什么是 “ 8421碼 ”?

8421碼是一種編碼方式拴事,又為8421BCD編碼,是一種二進(jìn)制轉(zhuǎn)化為十進(jìn)制的編碼方法刃宵。

? ? 是不是想吐槽說,這尼瑪是什么鬼牲证?這也叫介紹么哮针?確實(shí)就是這么簡單坦袍,它只是一種快速從二進(jìn)制轉(zhuǎn)換到十進(jìn)制的方法。

現(xiàn)在向你介紹下捂齐,它所蘊(yùn)含的魅力蛮放。

贅述:我們通過用二進(jìn)制表示十進(jìn)制奠宜,也就是我們的整數(shù)包颁,一般都是用八個(gè)位數(shù)表示,如果前面四個(gè)位數(shù)全是零压真,則可以不寫娩嚼,滿了則在前面補(bǔ)零。

現(xiàn)在榴都,我們用二進(jìn)制分別表示8? ? 4? ? ?2? ? ?1這四個(gè)數(shù)

8? ? --->>? 1000

4? ? --->>? 0100

2? ? --->>? 0010

1? ? --->>? 0001

仔細(xì)看看待锈,你發(fā)現(xiàn)什么規(guī)律了么?

是不是發(fā)現(xiàn)嘴高,他們在每個(gè)不同的位數(shù)上表示了不同的十進(jìn)制的數(shù)竿音?這就8421的由來和屎, 我們把在四個(gè)位數(shù)中的第一位表示8,第二個(gè)位數(shù)表示4春瞬, 第三個(gè)位數(shù)表示2 柴信,第四個(gè)則表示1.? ,如下圖所示宽气。


位數(shù)表示

學(xué)會了這個(gè)基本算法之后随常,你是否想問, 你這個(gè)算法也太垃圾了萄涯, 我要是計(jì)算超出15的數(shù)呢绪氛?那我怎么計(jì)算呢?涝影? 別急枣察!待我慢慢講!燃逻!

精彩的還在后面序目。上面問題說的不錯(cuò),假如超過15這個(gè)數(shù)伯襟,就好比 58猿涨,我該如何用二進(jìn)制表示呢?其實(shí)我在前面就已經(jīng)提示過大家姆怪,如果超過這個(gè)15就要往前面補(bǔ)位叛赚,這會又有人要說了,我往前面補(bǔ)位數(shù)稽揭,那我怎么用到8421這個(gè)算法來計(jì)算呢?

現(xiàn)在我教大家一個(gè)規(guī)律红伦。

每補(bǔ)一次位,我們的補(bǔ)位的個(gè)數(shù)都要乘以16淀衣,你可以把第一個(gè) 四位昙读,堪稱是16^(1-1)

公式:sum =16^(n-1)? ?,這里的n 表示的是補(bǔ)的次數(shù),這里的sum表示補(bǔ)的次數(shù)的每個(gè)數(shù)需要乘以這個(gè)數(shù)膨桥,計(jì)算才正確蛮浑。

舉個(gè)例子:0001 0000? 這個(gè)二進(jìn)制中的1 ,表示的其實(shí)就1*16只嚣,同理沮稚,0010 0000 這里的1表示也就是2*16 。

解釋一下蕴掏,為什么要乘以16.是因?yàn)樗膫€(gè)位數(shù)的二進(jìn)制,其實(shí)就是十六進(jìn)制的一位盛杰,可以把四個(gè)位數(shù)的二進(jìn)制,看成十六進(jìn)制的一位定拟,如果大家對二進(jìn)制轉(zhuǎn)換十六進(jìn)制不太了解的話 ,可以先去了解下青自。


下面內(nèi)容,我就默認(rèn)大家知道為什么要乘以16了Gぁ!需曾!

我們現(xiàn)在來算58,轉(zhuǎn)換到二進(jìn)制為多少呢?

因?yàn)檫@里我們需要補(bǔ)一次商源,所以我們只需要用58除以16车份,得出的商數(shù)牡彻,用來填補(bǔ)【第一個(gè)】四位數(shù),就是0011缎除,那么怎么表示除出來的余數(shù)呢?其實(shí)余數(shù)器罐,沒有滿足16渐行,因此只能往后面補(bǔ)充,58-48=10 祟印,在【第二個(gè)】四位數(shù)中補(bǔ)充這個(gè)余數(shù)肴沫,就是1010,因此得到的結(jié)果是00111010

我們拿電腦內(nèi)置的計(jì)算器來確認(rèn)下蕴忆,計(jì)算結(jié)果:


計(jì)算結(jié)果顯示

如果你還有點(diǎn)不明白的話,我現(xiàn)在來舉個(gè)比較實(shí)際的例子講吧!U掘稹汰具!

0001 0001 0001 0001 我們怎么把這個(gè)二進(jìn)制轉(zhuǎn)換成十進(jìn)制呢?首先我們看 總共有四個(gè) 四位數(shù)【這里把一個(gè)四位數(shù)看成一個(gè)整體】郁副,

所以最左邊的四位數(shù),每個(gè)數(shù)位的“1”都要乘以對應(yīng)的16^(4-1)=4096 存谎,就是說肥隆,在最左邊的一個(gè)四位“ 0001 ”的計(jì)算方法是:

8* 16^(4-1) *0+4*16 ^ (4-1)*0+2*16 ^ (4-1)*0+*16 ^ (4-1)*1=4096

第二個(gè)的四位算法是:( 提示:16^(3-1)=256 )

8*?16^(3-1)?*0????+????4*16?^?(3-1)*0????+????2*16?^?(3-1)*0????+????*16?^?(3-1)*1=256

.。恰聘。。

依此類推晴叨,最終結(jié)果是4096+256+16+1=4369

計(jì)算結(jié)果


不知道我講到這里兼蕊,你是否感受到了“8421碼算法”的魅力是否吸引到你呢件蚕?

好了,今天8421碼算法的魅力就介紹到這里排作,如果還有好玩有趣的學(xué)習(xí)內(nèi)容,我會慢慢跟大家分享的妄痪,

最后感謝大家閱讀本文,如果有問題僧著,歡迎大家和我討論障簿。CU~!

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個(gè)濱河市站故,隨后出現(xiàn)的幾起案子毅舆,更是在濱河造成了極大的恐慌憋活,老刑警劉巖虱黄,帶你破解...
    沈念sama閱讀 218,386評論 6 506
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場離奇詭異橱乱,居然都是意外死亡,警方通過查閱死者的電腦和手機(jī)作瞄,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 93,142評論 3 394
  • 文/潘曉璐 我一進(jìn)店門宗挥,熙熙樓的掌柜王于貴愁眉苦臉地迎上來种蝶,“玉大人,你說我怎么就攤上這事螃征。” “怎么了会傲?”我有些...
    開封第一講書人閱讀 164,704評論 0 353
  • 文/不壞的土叔 我叫張陵淌山,是天一觀的道長泼疑。 經(jīng)常有香客問我,道長荷荤,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 58,702評論 1 294
  • 正文 為了忘掉前任会油,我火速辦了婚禮翻翩,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘嫂冻。我一直安慰自己胶征,他們只是感情好睛低,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,716評論 6 392
  • 文/花漫 我一把揭開白布钱雷。 她就那樣靜靜地躺著伴嗡,像睡著了一般。 火紅的嫁衣襯著肌膚如雪瘪校。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 51,573評論 1 305
  • 那天泣懊,我揣著相機(jī)與錄音麻惶,去河邊找鬼。 笑死窃蹋,一個(gè)胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的警没。 我是一名探鬼主播,決...
    沈念sama閱讀 40,314評論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼亡脸,長吁一口氣:“原來是場噩夢啊……” “哼浅碾!你這毒婦竟也來了?” 一聲冷哼從身側(cè)響起垂谢,我...
    開封第一講書人閱讀 39,230評論 0 276
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎埂陆,沒想到半個(gè)月后,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體焚虱,經(jīng)...
    沈念sama閱讀 45,680評論 1 314
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 37,873評論 3 336
  • 正文 我和宋清朗相戀三年躏率,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了薇芝。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點(diǎn)故事閱讀 39,991評論 1 348
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡夯到,死狀恐怖饮亏,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情荐开,我是刑警寧澤,帶...
    沈念sama閱讀 35,706評論 5 346
  • 正文 年R本政府宣布晃听,位于F島的核電站能扒,受9級特大地震影響,放射性物質(zhì)發(fā)生泄漏初斑。R本人自食惡果不足惜予借,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,329評論 3 330
  • 文/蒙蒙 一频蛔、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧瀑粥,春花似錦、人聲如沸狞换。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,910評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至樊销,卻和暖如春脏款,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背撤师。 一陣腳步聲響...
    開封第一講書人閱讀 33,038評論 1 270
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留腺占,地道東北人万俗。 一個(gè)月前我還...
    沈念sama閱讀 48,158評論 3 370
  • 正文 我出身青樓,卻偏偏與公主長得像闰歪,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個(gè)殘疾皇子临扮,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 44,941評論 2 355

推薦閱讀更多精彩內(nèi)容