0
  • 聊天消息
  • 系統(tǒng)消息
  • 評論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

數(shù)據(jù)的表現(xiàn)形式與運(yùn)算

jf_B3xDfZry ? 來源:C語言學(xué)習(xí)聯(lián)盟 ? 作者:C語言學(xué)習(xí)聯(lián)盟 ? 2022-10-12 11:45 ? 次閱讀

1、介紹數(shù)據(jù)

在定義變量時(shí)需要指定變量的類型。常量也是區(qū)分類型的。因?yàn)閿?shù)據(jù)都是存放在內(nèi)存中的單元中的,它 是具體存在的,而存儲單元是有限制大小字節(jié)的,每一個(gè)存儲單元存放數(shù)據(jù)的范圍是有限的。所以必須對數(shù)據(jù)分配儲存單元的安排,包括儲存單元的長度(占用字節(jié)數(shù))以及數(shù)據(jù)存儲的形式,不同類型的存儲。也是為了方便編程人員對數(shù)據(jù)進(jìn)行操作,不然一堆數(shù)據(jù)放下來,都不知道哪個(gè)是哪個(gè),這樣分類了之后大大提升了編程效率。

4b112a04-494c-11ed-a3b6-dac502259ad0.png

2、 整型類型

基本整型 int :

編譯系統(tǒng)一般會分配2個(gè)或4個(gè)字節(jié)(具體是看編譯環(huán)境),1個(gè)字節(jié)(8個(gè)二進(jìn)位),整數(shù)是以補(bǔ)碼的形式存放在儲存單元中的。如 5:二進(jìn)制是101;如果用兩個(gè)字節(jié)存放 正數(shù)的補(bǔ)碼和源碼都是:0000 0000 0000 0101

負(fù)5則是要先求出源碼,然后再按位取反,再加1 才是負(fù)數(shù)的補(bǔ)碼 如

(源碼)0000 0000 0000 0101

(按位取反)1111 1111 1111 1010 (負(fù)數(shù)補(bǔ)碼)1111 1111 1111 1011

再存放整數(shù)的存儲單元中,最左邊(首位)一位是用來表示符號的,0表示正數(shù),1表示負(fù)數(shù)

現(xiàn)在的編譯環(huán)境一般都是分配的是4個(gè)字節(jié)(32位),范圍是-2^31到2^31-1 即 -214 748 3648到-214 748 3647

短整型 short int :

短整型一般都是分配兩個(gè)字節(jié)存儲方式與int相同,系統(tǒng)一般是分配2個(gè)字節(jié)(16位),數(shù)值能表示的范圍是-32768-32767(比int少)

長整型 long int :

系統(tǒng)會分配4個(gè)字節(jié)(32位),那么長整型所能表示的數(shù)字范圍就是-2^63----2^63-1了。與int不相同的是int 至少有2個(gè)字節(jié)以上,long至少有4個(gè)字節(jié)以上,并且sizeof(int )<=sizeof(long int)。

有些編譯環(huán)境的int只是兩個(gè)字節(jié)而已

雙長整型 long long int:

系統(tǒng)會分配8個(gè)字節(jié)(64位),那么長整型所能表示的數(shù)字范圍就是-2^63----2^63-1了。(比長整型長得多)

注* 當(dāng)然上面所說的 在64位系統(tǒng)下,而且還是要看具體的編譯環(huán)境,如果在32位的機(jī)子或者比較古老編譯環(huán)境的上面,數(shù)值能表示情況和分配字節(jié)會會有所不同。

unsigned(無符號類型)

在整數(shù)中,有 有符號和無符號之稱,一般默認(rèn)都是有符號的,在變量定義前加上,unsigned 關(guān)鍵字 ,就可將整型數(shù)據(jù)轉(zhuǎn)換為無符號類型數(shù)據(jù),也就是數(shù)學(xué)中的絕對值數(shù)字。一般默認(rèn)初始化都是有符號的。

實(shí)型數(shù)據(jù)不能加signed(有符號)或unsiged(無符號)修飾符。

由于無符號數(shù)據(jù)最高位不再用來表示符號,而用來表示數(shù)字,所以無符號的存儲會比有符號的存儲范圍擴(kuò)大一倍。即65535位。如-1在兩字節(jié)中存放的補(bǔ)碼形式是 1111 1111 1111 1111 最開始的一位數(shù)字就表示的符號位 ,數(shù)值就只有2^15位。但是如果它加上unsigned無符號,那么第一位將不再代表符號,所以數(shù)值也就相應(yīng)增加到2^16位了。

字符型 char:

字符數(shù)據(jù)在內(nèi)存中的儲存是:每個(gè)字符變量被分配一個(gè)字節(jié)的空間,所以一個(gè)單引號只能放一個(gè)字符,字符值是以ASCII碼形式存放在存儲單元中的。字符可以是任意的字符,但數(shù)字被定義成字符后就不能參與數(shù)值運(yùn)算了 如 ‘ 5 ‘ 和5是不同的,’ 5 ‘是字符常量,它只是表示一個(gè)形狀位‘5’的符號,在需要時(shí)按原樣輸出而已,并不是以數(shù)值存放的,所以不能參與運(yùn)算。

char是int的一種特殊形式。在一般時(shí)候,也可以定義位char類型的變量來像int的變量一樣操作。

可以將0-127的整數(shù)賦值給一個(gè)字符變量。如果將負(fù)數(shù)賦值下去,由于字符型只能讀取一個(gè)字符,所以前面的符號將不會被讀取。

定義字符變量,實(shí)際上是定義一個(gè)字節(jié)的整型變量,它只不過是用來存放字符而已,

char a = '-6';char b = a;printf("%c", b);//結(jié)果是輸出6

signed char(有符號) 能表示的數(shù)值范圍是-2^7到2^7-1 即-128-127

unsigned char (無符號)能表示的數(shù)值范圍 是2^8-1 即 0-255

(還有一種字符串形式數(shù)據(jù)類型,后面會詳細(xì)介紹)

布爾型 bool:

在使用次類型前需要添加預(yù)處理頭文件命令#include,然后才可以定義定義次變量 如bool a;布爾型的值只有兩個(gè):false(假)和true(真)。false的值為0,true的值是1(或者是非0的值都是),bool只占用一個(gè)字節(jié)。

_BOOL長度視實(shí)際環(huán)境來定,一般可認(rèn)為是4個(gè)字節(jié)。(這個(gè)是不用頭文件可以定義的)但是類型值只有0和1這兩個(gè)值。

3、浮點(diǎn)型(實(shí)數(shù)型)

C語言中,實(shí)數(shù)是以指數(shù)形式存放在內(nèi)存中的,一個(gè)小數(shù)表示為指數(shù)的形式有很多,如3.14159,可以表示為 0.0314159*10^2或314.159*10^-2 等等。

由于它小數(shù)點(diǎn)的位置可以移動,所以叫它浮點(diǎn)數(shù)。所有的浮點(diǎn)數(shù)類型的數(shù)值以二進(jìn)制指數(shù)形式存放在內(nèi)存中,在儲存中,系統(tǒng)將小數(shù)部分和指數(shù)部分分別存放。

存儲分為三部分:符號位,小數(shù)位,指數(shù)位是以2冪次來表示的。存儲方式都是用科學(xué)計(jì)數(shù)法來存儲數(shù)據(jù)的 如:133.5(在內(nèi)存中)符號位(0為正)階碼(指數(shù)位)尾數(shù)(小數(shù)點(diǎn)后的數(shù))

135.5單精度的浮點(diǎn)數(shù),先轉(zhuǎn)整數(shù)135轉(zhuǎn)換成二進(jìn)制為1000 0101,然后再轉(zhuǎn)小數(shù)的5轉(zhuǎn)換為0.1,則135.5二進(jìn)制為1000 0101.1。

這個(gè)表示尾數(shù) 然后首先要用科學(xué)計(jì)數(shù)法的形式表示出來,1000 0101.1科學(xué)計(jì)數(shù)法就是1.0000 1011*2^7

這里的階碼用移碼來表示,float的偏移量為127.階碼位是8位,那么這里的階碼就是127+7=134;將134轉(zhuǎn)為二進(jìn)制是1000 0110;

由于規(guī)定小數(shù)點(diǎn)前面都為1,因此在計(jì)算機(jī)中,將不會存儲小數(shù)點(diǎn)前面的1,這里的尾數(shù)就為00001011。其后全部補(bǔ)0,將其補(bǔ)充夠23位數(shù)。這里是正數(shù),所以符號位為0

因此數(shù)字在內(nèi)存中存儲為:0100 0011 0000 0101 1000 0000 0000 0000(四個(gè)字節(jié))

**由于用二進(jìn)制表示一個(gè)浮點(diǎn)數(shù)對于存儲單元來說長度是有限的,因此不能得到完全精準(zhǔn)的值,只能保持有限的精確度。小數(shù)部分占的位數(shù)越多。有效數(shù)字越多,指數(shù)部分占的位數(shù)越多,則能表示的數(shù)值范圍越大。

**偏移量:是指浮點(diǎn)數(shù)表示法中的 指數(shù)域 的 編碼值 為指數(shù)的 實(shí)際值 加上某個(gè)固定的值,用IEEE 754 國際標(biāo)準(zhǔn)規(guī)定該 固定值 為 2 的 (e?1)次方減 1 其中的e 為 存儲指數(shù)的單位元 的長度 (即有幾個(gè) bit) (就是看一個(gè)浮點(diǎn)類型能表示指數(shù)部分最大范圍)

單精度浮點(diǎn)型 float :

單精度浮點(diǎn)型字節(jié)數(shù)為4個(gè)字節(jié),有效數(shù)字6-7個(gè),小數(shù)長度23位(24的話是包括符號位)。指數(shù)域是8位單位元,固定偏移值是2 的 (7)次方減 1, 就是 2的七次方減1,等于 127

(取值范圍見圖)

雙精度浮點(diǎn)型 double:

雙精度浮點(diǎn)型存儲字節(jié)數(shù)為8個(gè)字節(jié),有效數(shù)字達(dá)到15個(gè),小數(shù)長度52位(53的話是包括符號位)指數(shù)域是11個(gè)單位元。固定偏移值是2 的 (10)次方減 1, 就是 2的十次方減1,等于 1023

(取值范圍見圖)

長精度浮點(diǎn)型 long double :

不同的編譯器對于long double 所給的數(shù)據(jù)都不一樣,一般來說都是分配16個(gè)字節(jié),有效數(shù)字達(dá)到19個(gè)。

審核編輯:彭靜
聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點(diǎn)僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問題,請聯(lián)系本站處理。 舉報(bào)投訴
  • 數(shù)據(jù)
    +關(guān)注

    關(guān)注

    8

    文章

    6715

    瀏覽量

    88316
  • 存儲
    +關(guān)注

    關(guān)注

    13

    文章

    4123

    瀏覽量

    85279
  • 內(nèi)存
    +關(guān)注

    關(guān)注

    8

    文章

    2903

    瀏覽量

    73546
  • 編譯
    +關(guān)注

    關(guān)注

    0

    文章

    646

    瀏覽量

    32672

原文標(biāo)題:C語言知識總結(jié)二:基本的數(shù)據(jù)的表現(xiàn)形式與運(yùn)算

文章出處:【微信號:C語言學(xué)習(xí)聯(lián)盟,微信公眾號:C語言學(xué)習(xí)聯(lián)盟】歡迎添加關(guān)注!文章轉(zhuǎn)載請注明出處。

收藏 人收藏

    評論

    相關(guān)推薦

    [2.2.1]--邏輯函數(shù)的表現(xiàn)形式

    數(shù)字電路數(shù)字邏輯
    學(xué)習(xí)電子知識
    發(fā)布于 :2022年12月06日 21:52:20

    [2.2]--2.2數(shù)據(jù)的基本表現(xiàn)形式

    數(shù)據(jù)科學(xué)
    jf_75936199
    發(fā)布于 :2023年04月05日 00:22:11

    變量和數(shù)據(jù)類型PPT教程

    變量和數(shù)據(jù)類型PPT教程程序是為執(zhí)行一項(xiàng)任務(wù)而編寫的有序指令集算法是解決問題的具體方法和步驟流程圖是算法的圖形化表現(xiàn)形式C語言的特點(diǎn)C程序的編譯和運(yùn)行過程編譯器將源程序轉(zhuǎn)換成機(jī)器能理解的程序連接器
    發(fā)表于 06-20 16:38

    編程是一種思維方式,而代碼是一種表現(xiàn)形式,硬件只不過是對思維方式的物理體現(xiàn)

    編程是一種思維方式,而代碼是一種表現(xiàn)形式,硬件只不過是對思維方式的物理體現(xiàn)關(guān)于這句話,你怎么看?
    發(fā)表于 08-25 13:18

    安川變頻器故障代碼表現(xiàn)形式及維修

    一、安川變頻器故障代碼表現(xiàn)形式安川變頻器在出現(xiàn)故障代碼時(shí),一共有三種表現(xiàn)形式:1、故障檢出故障時(shí),會出現(xiàn)以下狀況。LED 操作器上出現(xiàn)表示故障內(nèi)容的文字,ALM 指示燈點(diǎn)亮。變頻器輸出被切斷,電機(jī)
    發(fā)表于 08-31 14:14

    電梯的干擾表現(xiàn)形式有哪幾種?

    電梯干擾產(chǎn)生的原理是什么?電梯的干擾表現(xiàn)形式有哪幾種?網(wǎng)線綁扎時(shí)注意事項(xiàng)有哪些?雙絞線布線施工注意事項(xiàng)有哪些?
    發(fā)表于 06-02 06:19

    can線問題具體表現(xiàn)形式

    目錄前言can線問題具體表現(xiàn)形式:軟件問題:1.速率2.管腳3.中斷回調(diào)總結(jié)前言經(jīng)過一段時(shí)間的stm32的學(xué)習(xí),個(gè)人總結(jié)了一些常見問題,這篇文章就主要寫一下在can線上遇到的問題。can線
    發(fā)表于 08-06 09:37

    安川變頻器在出現(xiàn)故障代碼時(shí)有哪幾種表現(xiàn)形式

    一、安川變頻器故障代碼表現(xiàn)形式安川變頻器在出現(xiàn)故障代碼時(shí),一共有三種表現(xiàn)形式:1、故障檢出故障時(shí),會出現(xiàn)以下狀況。LED 操作器上出現(xiàn)表示故障內(nèi)容的文字,ALM 指示燈點(diǎn)亮。變頻器輸出被切斷,電機(jī)
    發(fā)表于 09-03 08:45

    關(guān)于信號的運(yùn)算的資料下載

    消息(Message):在通信系統(tǒng)中,一般將語言、文字、圖像或數(shù)據(jù)統(tǒng)稱為消息。 信號(Signal):指消息的表現(xiàn)形式與傳送載體。 信息(Information):一般指消息中賦予人們的新知識
    發(fā)表于 03-05 10:46 ?0次下載

    淺談智能制造的載體,核心,關(guān)鍵技術(shù)和所需人才

    智能制造核心是制造,本質(zhì)是先進(jìn)制造,基礎(chǔ)是數(shù)字化,趨勢是(人工)智能,靈魂和難點(diǎn)是工藝,載體(外在表現(xiàn)形式)是智能裝備,精神表現(xiàn)形式(內(nèi)在表現(xiàn)形式)是軟件。
    的頭像 發(fā)表于 10-21 10:54 ?4197次閱讀

    智能裝備的組成及關(guān)鍵技術(shù)解析

    智能制造核心是制造,本質(zhì)是先進(jìn)制造,基礎(chǔ)是數(shù)字化,趨勢是(人工)智能,靈魂和難點(diǎn)是工藝,載體(外在表現(xiàn)形式)是智能裝備,精神表現(xiàn)形式(內(nèi)在表現(xiàn)形式)是軟件。
    發(fā)表于 10-27 09:27 ?9956次閱讀

    關(guān)于智慧教育的新的表現(xiàn)形式

    英特爾智慧教育高管和技術(shù)專家將分享對智慧教育的觀察洞見,以及英特爾與合作伙伴共同探討現(xiàn)代教育解決方案。更重要的是,活動期間,將會有來自英特爾與合作伙伴的神秘新品發(fā)布,想了解更多,關(guān)注英特爾物聯(lián)網(wǎng),更多信息第一時(shí)間奉送。
    的頭像 發(fā)表于 09-12 08:59 ?1648次閱讀

    數(shù)據(jù)代幣與數(shù)據(jù)訪問控制權(quán)限有哪一些設(shè)想

    數(shù)據(jù)本身的物理表現(xiàn)形式(例如每個(gè)數(shù)據(jù)復(fù)制一個(gè)代幣)和計(jì)算的物理表現(xiàn)形式(例如一個(gè)CPU分鐘內(nèi)一個(gè)代幣)。在許多情況下,硬件資源的位置以及硬件功能的影響很大。
    發(fā)表于 12-31 11:23 ?754次閱讀

    中國聯(lián)通張涌:5G將為電競帶來新的表現(xiàn)形式和產(chǎn)業(yè)空間

    8月24日,中國聯(lián)通中訊郵電咨詢設(shè)計(jì)院有限公司執(zhí)行董事、總經(jīng)理張涌分享了對5G技術(shù)與電競結(jié)合的全新思考,他認(rèn)為5G“大帶寬、低時(shí)延、多連接”的特點(diǎn)將對大眾的生活產(chǎn)生極大的影響,也將更大幅度地改變與通信技術(shù)相伴相生的電子競技產(chǎn)業(yè)。張涌相信,5G的到來將為電競帶來令人驚嘆的表現(xiàn)形式和產(chǎn)業(yè)空間。
    的頭像 發(fā)表于 08-25 10:30 ?2121次閱讀

    C語言中的數(shù)據(jù)表現(xiàn)形式

    變量:變量代表一個(gè)有名字的、具有特定屬性的一個(gè)存儲單元。 常變量:C99允許使用常變量,常變量具有變量的基本屬性只是不允許改變其值。 標(biāo)識符:用來對變量、符號常量名、函數(shù)、數(shù)組、類型等命名的有效字符序列統(tǒng)稱為標(biāo)識符。 C語言規(guī)定標(biāo)識符只能由字母、數(shù)字和下劃線3種字符組成,且第1個(gè)字符必須為字母或下劃線。
    的頭像 發(fā)表于 03-08 16:18 ?472次閱讀
    C語言中的<b class='flag-5'>數(shù)據(jù)</b>的<b class='flag-5'>表現(xiàn)形式</b>