C語言----二進制(基礎篇十二)


......

  位(bit

    在計算機內部,開關導通時,表示1;斷開表示0。這樣,電壓不穩時計算機還能照樣工作。

    一個通斷開關叫做一個“位”。

  字節(byte

    計算機內部經常把8個位作為一組,用來表示許多我們平時生活中用到的東西。如:

      00000000表示事物為假,11111111表示為真(非0即為真)

      00000000表示數字0,00000011表示3

      8個位可以表示不同的組合情況,比如音樂音符,顏色,這樣就實現了多媒體。

      全世界統一把8個位叫做一個“字節”,我們平時所說的硬盤容量、內存大小、U盤大小,都是以字節為單位。網絡卻經常使用位為單位,所以我們平時的上網速度要除以8(加上衰耗,實際上要除以10),才是下載速度。

 

  二進制與整數

    人類平時使用的數字都是逢十進一,叫十進制。在計算機中是逢二進一,叫二進制。

    二進制表示成八進制和十六進制更加方便。八進制是逢八進一,用0到7表示。十六進制是逢十六進一,大於9的數字用字母A到F表示。

    用八進制和十六進制表示二進制的原因是:3個位剛好是八進制的一位數,4個位剛好是十六進制的一位數。黑客和病毒工作者就經常工作在十六進制數上。

 

十進制 二進制 八進制 十六進制
0 0 0 0
1 1 1 1
2 10 2 2
3 11 3 3
4 100 4 4
5 101 5 5
6 110 6 6
7 111 7 7
8 1000 10 8
9 1001 11 9
10 1010 12 A
11 1011 13 B
12 1100 14 C
13 1101 15 D
14 1110 16 E
15 1111 17 F
16 10000 20 10
17 10001 21 11
18 10010 22 12
19 10011 23 13

  

    注:標黑體字的為關鍵數,關鍵數后面的數字,可從此關鍵數開始推導

    ※1個八進制位剛好是3個二進制位

    ※1個十六進制位剛好是4個二進制位。

    ※1個字節剛好是2個十六進制位

    如:11111111剛好是FF

 

  C語言中的八進制和十六進制

    程序1

      輸入和輸出十、八、十六進制

//12-1,輸出十六進制,八進制
#include <stdio.h>

main() 
{
    int i8, i10, i16;  //八進制,十進制,十六進制
    i8 = 015;     //八進制的形式賦值
    i10 = 15;      //十進制的形式賦值
    i16 = 0x15;   //十六進制的形式賦值


    printf("i8的輸出形式%o,十進制為%d,十六進制為%x\n", i8, i8, i8);
    printf("i10的輸出形式%o,十進制為%d,十六進制為%x\n", i10, i10, i10);
    printf("i16的輸出形式%o,十進制為%d,十六進制為%x\n", i16, i16, i16);

}

  

    從程序中可以看出:

      ※整數前加個0,表示8進制常量,如:063

      ※整數前加個0x,表示16進制常量,如:0x3F

    注意:C語言中沒有二進制的輸入輸出,用庫函數itoa也只能將十進制轉換成二進制,二進制轉十進制沒有對應的庫函數。

    ※八進制和十六進制整數沒有負數。

  各類型所占內存

 

類型 字節 類型 字節
char 1 float 4
short 2 double 8
int 4 long double 8
long 4 指針 4

    ※整型前加unsigned,所占字節數保持不變

    ※用sizeof可以計算出所有類型所占的字節數。

    浮點數據類型因為在后面調出幾位用來做指數部分,計算方法較復雜,本書作為入門叢書,不對此內容深入講解。

  進制轉換

    書寫格式:

      (數字)進制

    如:

      (111)2    (10)8    (FF)16

    ※十進制轉二進制:用“除2取余法”

      (20)10=(?)2

 

 

 

    注意:要除到商為0為止

    答案:(20)10=(10100)2

    規律:以此類推,十進制轉八進制可用“除8取余法”;轉十六進制可用“除16取余法”

 

 

 

    ※二進制轉十進制:用降冪法

       (10100)2= (?)10

      1*24+0*23+1*22+0*21+0*20=20

      注意:任何數的0次冪等於1

      (10100)2= (20)10

    規律:八或十六進制轉十進制只要將底數改為8或16即可

 

 

    ※二進制轉八進制:

      將二進制由低位到高位,3個分為1組,每組查表所得的八進制組合,就是最終結果。

      (10,100)2= (24)8

 

    ※二進制轉十六進制:

      將二進制由低位到高位,4個分為1組,每組查表所得的十六進制組合,就是最終結果。

      (1,0100)2= (14)16

    

    ※八和十六進制互轉:

      可以通過二進制作為中間進制,再轉成另一個進制

    ※進制轉換可以用Windows自帶的計算器設置成科學型后再進行驗算。

 

  單位關系

    數學中的單位關系

      太(T)、吉(G)、兆(M)、千(K)、字節(byte)、位(bit)  

        1T=1000G

        1G=1000M

        1M=1000K

        1K=1000byte

        1byte=8bit

   

    計算機中的單位關系:

      計算機中的單位關系都是1024,因為210=1024,便於計算機的計算,所以以上的單位關系應改為: 

        1T=1024G

        1G=1024M

        1M=1024K

        1K=1024byte

        1byte=8bit

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM