首页 → 名言 → 正能量文章
c語言中的進制介紹 c語言中各種進制數的表示
日期:2023-03-16 20:51:14    编辑:网络投稿    来源:网络资源
C語言進制知識總結  學習C語言進制時,有哪些知識點是需要掌握的呢,下面小編為大家帶來了C語言進制知識的總結,歡迎大家閱讀!  C語言進制知識總結  1.什么是進制  進制
为你推荐:
  • 文案溫柔治愈發朋友
  • C語言進制知識總結

      學習C語言進制時,有哪些知識點是需要掌握的呢,下面小編為大家帶來了C語言進制知識的總結,歡迎大家閱讀!

    C語言進制知識總結

      C語言進制知識總結

      1.什么是進制

      進制是一種計數的方式,常用的有二進制、八進制、十進制、十六進制。任何數據在計算機內存中都是以二進制的形式存放的。

      我對進制的個人理解,二進制數是以2為計算單元,滿2進1位的數;八進制數是以8為計算單元,滿8進1位的數。

      對于任何一個數字,我們都可以用不同的進制來表示,比如,十進制數12,用二進制表示為1100,用八進制表示為14,用十六進制表示為0xC。

      2.進制的'轉換規則

      遵循滿進制值進1位,個位數變為0的原理,下面我們以十進制數18為例,對1-18中每一個數值轉換各種進制做一個詳細說明

      轉二進制:

      ①小于2,無需進1位,1的二進制值是1

      ②為二進制值1后面一個數,由于1+1滿2,需要進1位,個位數變為0,所以2的二進制值是10

      ③為二進制值10后面一個數,由于11的個位數1小于2,無需進1位,所以3的二進制值是11

      ④為二進制值11后面一個數,由于11的個位數1+1滿2,需要進1位,而二進制值11的位數1+1又滿2,所以位數加1,最終轉換結果為100

      轉換思路:

      二進制值11+1 ->10+(1+1)(個位等于2,進1位,個位數變為0) ->(1+1)+0(位數滿2,進1位) -> 100

      以此類推,最終十進制數18的二進制轉換結果是10010

      轉八進制:

      1-7小于8,無需進1位,1-7的八進制由1-7表示

      8為八進制值7后面一個數,由于7+1滿8,需要進1位,個位數變為0,所以8的八進制值是10

      以此類推,最終十進制數18的八進制轉換結果是22

      轉十六進制:

      十六進制中,個位數1-15分別為1 2 3 4 5 6 7 8 9 a b c d e f (a=10....f=15)

      16為十六進制值c后面1個數,由于c+1滿16,需要進1位,個位數變為0,所以16的十六進制是10。

      最終十進制數18的十六進制轉換結果是12

      詳細結果如下圖所示(C語言把數字前面加0x的數認為是十六進制數)

      3.C語言中int類型進制的聲明以及占位符

      雖然以下3個變量的賦值方式不同,但實際賦值結果都是18

      //二進制類型數字加0b

      int number1 = 0b10010;

      //八進制類型數字加0

      int number2 = 022;

      //十六進制類型數字加0x

      int number3 = 0x12;

      八進制占位符:%o

      十六進制占位符:%x

      4.內存存儲數據細節

      我們知道,int類型數據占據4個字節,1個字節是8bit。并且任何數據在計算機內存中都是以二進制的形式存放的,所以內存需要用32個0或1來描述1個int類型數據。

      由于18的二進制數是10010,我們將一個int類型變量賦值18,本質上是將這個變量的內存地址對應的32個bit位修改為:

      0000 0000 0000 0000 0000 0000 0001 0010(未滿31位,后面的數字用0填充:為什么是31而不是32呢,后面會介紹)

      假設我們定義兩個變量

      int number1 = 12; int number2 = 13;

      計算機會根據內存地址以由大到小的順序進行分配內存空間,具體如下圖所示:

      5.進制的轉換公式

      二進制轉十進制

      0b1100 ->0*2的0次方 + 0*2的1次方 + 1*2的2次方 + 1*2的3次方 = 12

      十進制轉二進制

      67 ->64+2+1 ->2的6次方+ 2的1次方 + 2的0次方 = 0b1000011

      6.進制的其他知識

      ①.n位二進制能保存的整數范圍公式:2的n次方-1

      例如,3位的二進制數最大值為111,對應的十進制數字為7;5位的二進制數最大值為11111,對應的十進制數字為(2*2*2*2*2)-1 = 31。

      ②.負數的二進制保存規則是最左邊的數字是1。例如,0000 0000 0000 0000 0000 0000 0001 0010 表示正整數,1111 1111 1111 1111 1111 1111 1110 1101表示負數

      由此,我們就能推測出,int類型能保存的最大整數是2的(32-1)次方-1 = 2147483647。為什么要用32-1,很簡單,32個bit中,必須抽1個bit位用來描述這個數字是正數還是負數。

    【C語言進制知識總結】相關文章:

    C語言中進制知識匯總整理11-21

    C語言數組知識點總結10-05

    C語言基礎知識小總結10-06

    C語言入門必備知識11-07

    C語言基礎小知識10-26

    C語言程序基礎知識10-07

    c語言公共基礎知識11-18

    C語言基本知識整理10-03

    C語言基礎知識匯總09-29

    这里有更多你想看的
  • 鼓勵自己的一句話
    • 本类最新
    • 精品图文
    • 时尚
    • 新闻
    • 生活
    • 视觉
    • 微爱
      栏目ID=88的表不存在(操作类型=0)

    头条推荐

    热门推荐

    特别推荐

    返回顶部