国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 課堂 > 網絡協議 > 正文

進制轉換之二進制十進制和十六進制

2020-10-24 11:51:31
字體:
來源:轉載
供稿:網友

二進制和十六進制對于程序員來說應該是很熟悉的東西了,我也不知道為什么我現在還在看這個呢?^_^

    什么是二進制?什么是十六進制?

    說到進制我們最熟悉的莫過于十進制了,我們從小學的數學都是用的十進制。所謂十進制就是逢十進一,從0開始數 0、1、2、3、.....7、8、9,十個數了再下一個數就要進一位變成10(變成了兩位數)。二進制就是逢二進一,0、1再下一個數就要進一位了變成10(變成兩位數),十六進制數的道理也是一樣的,從0開始數,0、1、2、.....7、8、9發現還沒到十六個數還不能進一位,所以不能變成10,那怎么辦?數字不夠用那就用字母來湊,9后面接著數A、B、C、D、E、F,然后才進一位變成10。

    進制間的轉換

    人類習慣看十進制的數,看到一長串的二進制數就一臉懵逼。計算機就只認二進制的數,看到十進制也是一臉懵逼。至于十六進制我想就是為了取個平衡吧(十六進制和二進制的轉換會容易些)。

    什么叫進制的轉換呢?比如說二進制中0、1后面的數是10(不讀作“十”),我們知道在十進制中1后面是2,所以二進制中的10轉換為十進制就是2,反過來十進制中的2轉換為二進制就是10。當然進制間轉換不能靠數。

    先從簡單的二進制轉十六進制說起:比如二進制101010110

    image.png

     如圖所示:將二進制每四位分為一組,不夠四位的前面補0(例子中沒補)。每一組都可以轉換為一個十六進制的數,將這些數連在一起就是結果,也就是說上面的二進制轉換位十六進制為156。那么每一個組里的二進制要怎么轉為十六進制呢?

    image.png

        從上圖可知0110的值計算為0*8 + 1*4 + 1*2 + 0*1 = 6。如果4位全為1剛好是十六進制的F,這可以解釋為什么是4位劃分為一組了。

    十六進制轉二進制剛好是一個相反的過程。將十六進制數的每一位轉化為一個4位的二進制,然后連起來。

    image.png

    二進制轉十進制的思路第二幅圖的思路是一樣的,只不過不分組就是了。例:

    image.png

    十進制轉二進制就比較麻煩了,要將十進制的數不斷除2取余數,懶得寫了丟個網上的圖片:

image.png

下面是其他網友的補充

1.十進制轉R進制1.1 十進制轉二進制

十進制整數轉二進制

十進制整數轉換成二進制采用“除2倒取余”,十進制小數轉換成二進制小數采用“乘2取整”。

例題: 135D = ______ B

**解析:**如下圖所示,將135除以2,得余數,直到不能整除,然后再將余數從下至上倒取。得到結果:1000 0111B.
這里寫圖片描述

圖1.十進制整數轉二進制

十進制小數轉二進制

十進制小數轉換成二進制小數采用 “乘2取整,順序排列” 法。

具體做法是:

用2乘十進制小數,可以得到積,將積的整數部分取出,再用2乘余下的小數 部分,又得到一個積,再將積的整數部分取出,如此進行,直到積中的小數部分為零,或者達到所要求的精度為止。

然后把取出的整數部分按順序排列起來,先取的整數作為二進制小數的高位有效位,后取的整數作為低位有效位。

例題: 0.68D = ______ B(精確到小數點后5位)

**解析:**如下圖所示,0.68乘以2,取整,然后再將小數乘以2,取整,直到達到題目要求精度。得到結果:0.10101B.

在這里插入圖片描述

圖2.十進制小數轉二進制

1.2 十進制轉八進制

思路和十進制轉二進制一樣,參考如下例題:

例題: 10.68D = ______ Q(精確到小數點后3位)

**解析:**如下圖所示,整數部分除以8取余數,直到無法整除。小數部分0.68乘以8,取整,然后再將小數乘以8,取整,直到達到題目要求精度。得到結果:12.534Q.

這里寫圖片描述

圖3.十進制轉八進制

1.3 十進制轉十六進制

思路和十進制轉二進制一樣,參考如下例題:

例題: 25.68D = ______ H(精確到小數點后3位)

**解析:**如下圖所示,整數部分除以16取余數,直到無法整除。小數部分0.68乘以16,取整,然后再將小數乘以16,取整,直到達到題目要求精度。得到結果:19.ae1H.

這里寫圖片描述

圖4.十進制轉十六進制

# 2.R進制轉十進制## 2.1 二進制轉十進制**方法為:**把二進制數按權展開、相加即得十進制數。(具體用法如下圖)

例題: 1001 0110B = ______ D

**解析:**如下圖所示。得到結果:150D.

這里寫圖片描述

圖5.二進制轉十進制

2.2 八進制轉十進制

八進制轉十進制的方法和二進制轉十進制一樣。

例題: 26Q = ______ D

**解析:**如下圖所示。得到結果:22D.

這里寫圖片描述

圖6.八進制轉十進制

2.3 十六進制轉十進制

例題: 23daH = ______ D

**解析:**如下圖所示。得到結果:9178D.

這里寫圖片描述

圖7.十六進制轉十進制

3.二進制轉八進制

二進制轉換成八進制的方法是,取三合一法,即從二進制的小數點為分界點,向左(或向右)每三位取成一位。

例題: 1010 0100B = ____Q

**解析:**計算過程如下圖所示。得到結果:244Q.

這里寫圖片描述

圖8.二進制轉八進制

4.二進制轉十六進制

二進制轉換成八進制的方法是,取四合一法,即從二進制的小數點為分界點,向左(或向右)每四位取成一位。

例題: 1010 0100B = ____H

**解析:**計算過程如下圖所示。得到結果:a4H.

這里寫圖片描述

圖9.二進制轉十六進制

5.工欲善其事,必先利其器

下面的表格是8位二進制所對應的十進制數值,對進制轉換以及類似題目的理解非常有用:

1 1 1 1 1 1 1 1 B
128 64 32 16 8 4 2 1 D

注:B:二進制
       D:十進制

例題: 135D = ______ B

**解析:**有了上面二進制對應十進制數值的表格,我們就可以將題目給的十進制135拆分為:128+7,再從表格中找到對應的數值,拼湊即可得到答案。
135D = 128D + 7D = 1000 0111B

作者:戴翔
電子郵箱:daixiangcn@outlook.com
簡介:中華人民共和國公民,中國共青團員,CSDN博客專家,秦淮區疾控中心托管社會公益組織指南針工作室志愿者,創業公司研發中心負責人,在校大學生。

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 方正县| 肇东市| 聂拉木县| 常宁市| 彰化市| 香港| 德江县| 泾源县| 兴和县| 琼中| 海南省| 两当县| 大港区| 酉阳| 钟祥市| 高安市| 汤原县| 晋城| 济阳县| 中超| 富顺县| 鹤岗市| 平顶山市| 灵丘县| 巫山县| 连江县| 盐边县| 西畴县| 酉阳| 筠连县| 南阳市| 台山市| 衡东县| 绍兴县| 武乡县| 宜昌市| 镇雄县| 循化| 会昌县| 叶城县| 甘孜县|