最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

C語言中進(jìn)制知識(shí)匯總

 更新時(shí)間:2016年05月08日 11:30:08   作者:cocoaVi  
在C語言里,整數(shù)有三種表示形式:十進(jìn)制,八進(jìn)制,十六進(jìn)制。 其中以數(shù)字0開頭,由0~7組成的數(shù)是八進(jìn)制。以0X或0x開頭,由0~9,A~F或a~f 組成是十六進(jìn)制。除表示正負(fù)的符號(hào)外,以1~9開頭,由0~9組成是十進(jìn)制。

1.什么是進(jìn)制

進(jìn)制是一種計(jì)數(shù)的方式,常用的有二進(jìn)制、八進(jìn)制、十進(jìn)制、十六進(jìn)制。任何數(shù)據(jù)在計(jì)算機(jī)內(nèi)存中都是以二進(jìn)制的形式存放的。

我對(duì)進(jìn)制的個(gè)人理解,二進(jìn)制數(shù)是以2為計(jì)算單元,滿2進(jìn)1位的數(shù);八進(jìn)制數(shù)是以8為計(jì)算單元,滿8進(jìn)1位的數(shù)。

對(duì)于任何一個(gè)數(shù)字,我們都可以用不同的進(jìn)制來表示,比如,十進(jìn)制數(shù)12,用二進(jìn)制表示為1100,用八進(jìn)制表示為14,用十六進(jìn)制表示為0xC。

2.進(jìn)制的轉(zhuǎn)換規(guī)則

遵循滿進(jìn)制值進(jìn)1位,個(gè)位數(shù)變?yōu)?的原理,下面我們以十進(jìn)制數(shù)18為例,對(duì)1-18中每一個(gè)數(shù)值轉(zhuǎn)換各種進(jìn)制做一個(gè)詳細(xì)說明

轉(zhuǎn)二進(jìn)制:

1小于2,無需進(jìn)1位,1的二進(jìn)制值是1

2為二進(jìn)制值1后面一個(gè)數(shù),由于1+1滿2,需要進(jìn)1位,個(gè)位數(shù)變?yōu)?,所以2的二進(jìn)制值是10

3為二進(jìn)制值10后面一個(gè)數(shù),由于11的個(gè)位數(shù)1小于2,無需進(jìn)1位,所以3的二進(jìn)制值是11

4為二進(jìn)制值11后面一個(gè)數(shù),由于11的個(gè)位數(shù)1+1滿2,需要進(jìn)1位,而二進(jìn)制值11的位數(shù)1+1又滿2,所以位數(shù)加1,最終轉(zhuǎn)換結(jié)果為100

轉(zhuǎn)換思路:二進(jìn)制值11+1 ->10+(1+1)(個(gè)位等于2,進(jìn)1位,個(gè)位數(shù)變?yōu)?) ->(1+1)+0(位數(shù)滿2,進(jìn)1位) -> 100

以此類推,最終十進(jìn)制數(shù)18的二進(jìn)制轉(zhuǎn)換結(jié)果是10010

轉(zhuǎn)八進(jìn)制:

1-7小于8,無需進(jìn)1位,1-7的八進(jìn)制由1-7表示

8為八進(jìn)制值7后面一個(gè)數(shù),由于7+1滿8,需要進(jìn)1位,個(gè)位數(shù)變?yōu)?,所以8的八進(jìn)制值是10

以此類推,最終十進(jìn)制數(shù)18的八進(jìn)制轉(zhuǎn)換結(jié)果是22

轉(zhuǎn)十六進(jìn)制

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

16為十六進(jìn)制值c后面1個(gè)數(shù),由于c+1滿16,需要進(jìn)1位,個(gè)位數(shù)變?yōu)?,所以16的十六進(jìn)制是10。

最終十進(jìn)制數(shù)18的十六進(jìn)制轉(zhuǎn)換結(jié)果是12

詳細(xì)結(jié)果如下圖所示(C語言把數(shù)字前面加0x的數(shù)認(rèn)為是十六進(jìn)制數(shù))

3.C語言中int類型進(jìn)制的聲明以及占位符

雖然以下3個(gè)變量的賦值方式不同,但實(shí)際賦值結(jié)果都是18

復(fù)制代碼 代碼如下:
//二進(jìn)制類型數(shù)字加0b int number1 = 0b10010; //八進(jìn)制類型數(shù)字加0 int number2 = 022; //十六進(jìn)制類型數(shù)字加0x int number3 = 0x12;

八進(jìn)制占位符:%o

十六進(jìn)制占位符:%x

4.內(nèi)存存儲(chǔ)數(shù)據(jù)細(xì)節(jié)

我們知道,int類型數(shù)據(jù)占據(jù)4個(gè)字節(jié),1個(gè)字節(jié)是8bit。并且任何數(shù)據(jù)在計(jì)算機(jī)內(nèi)存中都是以二進(jìn)制的形式存放的,所以內(nèi)存需要用32個(gè)0或1來描述1個(gè)int類型數(shù)據(jù)。

由于18的二進(jìn)制數(shù)是10010,我們將一個(gè)int類型變量賦值18,本質(zhì)上是將這個(gè)變量的內(nèi)存地址對(duì)應(yīng)的32個(gè)bit位修改為:

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

假設(shè)我們定義兩個(gè)變量

//二進(jìn)制類型數(shù)字加0b
  int number1 = 0b10010;
  //八進(jìn)制類型數(shù)字加0
  int number2 = 022;
  //十六進(jìn)制類型數(shù)字加0x
  int number3 = 0x12;

計(jì)算機(jī)會(huì)根據(jù)內(nèi)存地址以由大到小的順序進(jìn)行分配內(nèi)存空間,具體如下圖所示:

5.進(jìn)制的轉(zhuǎn)換公式

二進(jìn)制轉(zhuǎn)十進(jìn)制

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

十進(jìn)制轉(zhuǎn)二進(jìn)制

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

6.進(jìn)制的其他知識(shí)

1.n位二進(jìn)制能保存的整數(shù)范圍公式:2的n次方-1

例如,3位的二進(jìn)制數(shù)最大值為111,對(duì)應(yīng)的十進(jìn)制數(shù)字為7;5位的二進(jìn)制數(shù)最大值為11111,對(duì)應(yīng)的十進(jìn)制數(shù)字為(2*2*2*2*2)-1 = 31。

2.負(fù)數(shù)的二進(jìn)制保存規(guī)則是最左邊的數(shù)字是1。例如,0000 0000 0000 0000 0000 0000 0001 0010 表示正整數(shù),1111 1111 1111 1111 1111 1111 1110 1101表示負(fù)數(shù)

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

相關(guān)文章

  • C++/CLI在vs上的安裝和初步使用教程

    C++/CLI在vs上的安裝和初步使用教程

    本文給大家介紹C++/CLI在vs上的安裝和初步使用,本文通過圖文并茂的形式給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友參考下吧
    2021-07-07
  • C語言實(shí)現(xiàn)通訊管理系統(tǒng)設(shè)計(jì)

    C語言實(shí)現(xiàn)通訊管理系統(tǒng)設(shè)計(jì)

    這篇文章主要為大家詳細(xì)介紹了C語言實(shí)現(xiàn)通訊管理系統(tǒng)設(shè)計(jì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2018-01-01
  • C++數(shù)據(jù)結(jié)構(gòu)之實(shí)現(xiàn)鄰接表與鄰接矩陣的相互轉(zhuǎn)換

    C++數(shù)據(jù)結(jié)構(gòu)之實(shí)現(xiàn)鄰接表與鄰接矩陣的相互轉(zhuǎn)換

    這篇文章主要為大家學(xué)習(xí)介紹了C++如何實(shí)現(xiàn)鄰接表與鄰接矩陣的相互轉(zhuǎn)換,文中的示例代碼簡潔易懂,感興趣的小伙伴可以跟隨小編一起學(xué)習(xí)一下
    2023-07-07
  • FFRPC應(yīng)用 Client/Server使用及原理解析

    FFRPC應(yīng)用 Client/Server使用及原理解析

    這篇文章主要介紹了FFRPC應(yīng)用 Client/Server使用及原理解析,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下
    2019-08-08
  • C++采用openfilename打開文件對(duì)話框用法實(shí)例

    C++采用openfilename打開文件對(duì)話框用法實(shí)例

    這篇文章主要介紹了C++采用openfilename打開文件對(duì)話框用法實(shí)例,是C++文件操作中非常實(shí)用的技巧,需要的朋友可以參考下
    2014-10-10
  • C語言如何實(shí)現(xiàn)可變參數(shù)詳解

    C語言如何實(shí)現(xiàn)可變參數(shù)詳解

    這種可變參數(shù)可以說是C語言一個(gè)比較難理解的部分,下面這篇文章主要給大家介紹了關(guān)于C語言如何實(shí)現(xiàn)可變參數(shù)的相關(guān)資料,需要的朋友可以參考下
    2021-07-07
  • Qt數(shù)據(jù)庫應(yīng)用之實(shí)現(xiàn)數(shù)據(jù)分組導(dǎo)出

    Qt數(shù)據(jù)庫應(yīng)用之實(shí)現(xiàn)數(shù)據(jù)分組導(dǎo)出

    這篇文章主要為大家詳細(xì)介紹了如何利用Qt實(shí)現(xiàn)數(shù)據(jù)庫數(shù)據(jù)分組導(dǎo)出,文中的示例代碼講解詳細(xì),對(duì)我們學(xué)習(xí)或工作有一定參考價(jià)值,需要的可以了解一下
    2022-06-06
  • C語言標(biāo)準(zhǔn)時(shí)間與秒單位相互轉(zhuǎn)換

    C語言標(biāo)準(zhǔn)時(shí)間與秒單位相互轉(zhuǎn)換

    這篇文章主要介紹了C語言標(biāo)準(zhǔn)時(shí)間與秒單位相互轉(zhuǎn)換,秒單位與標(biāo)準(zhǔn)時(shí)間的轉(zhuǎn)換方式,這份代碼一般用在嵌入式單片機(jī)里比較多,比如:設(shè)置RTC時(shí)鐘的時(shí)間,從RTC里讀取秒單位時(shí)間后,需要轉(zhuǎn)換成標(biāo)準(zhǔn)時(shí)間顯示。下文分享需要的小伙伴可以參考一下
    2022-05-05
  • C語言實(shí)現(xiàn)掃雷附完整代碼

    C語言實(shí)現(xiàn)掃雷附完整代碼

    本文詳細(xì)講解了C語言實(shí)現(xiàn)掃雷并附完整代碼,文中通過示例代碼介紹的非常詳細(xì)。對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2021-11-11
  • 零基礎(chǔ)學(xué)習(xí)C/C++需要注意的地方

    零基礎(chǔ)學(xué)習(xí)C/C++需要注意的地方

    這篇文章主要介紹了零基礎(chǔ)學(xué)習(xí)C/C++需要注意的地方,文中講解非常細(xì)致,供大家參考和學(xué)習(xí),想要學(xué)習(xí)C/C++的可以閱讀此文
    2020-06-06

最新評(píng)論

河西区| 镇平县| 呼和浩特市| 兴隆县| 平顶山市| 自贡市| 唐海县| 湖口县| 衡阳市| 上思县| 原阳县| 古交市| 张掖市| 建水县| 彭泽县| 南投县| 左权县| 台江县| 赤水市| 德安县| 板桥市| 榆树市| 武乡县| 灵寿县| 松阳县| 义乌市| 顺平县| 崇阳县| 合作市| 孙吴县| 漳州市| 泽库县| 古丈县| 汉阴县| 崇阳县| 天峻县| 乡宁县| 徐汇区| 宝应县| 尤溪县| 依安县|