欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

重學(xué)c/c++之?dāng)?shù)據(jù)存儲(chǔ)詳解(整數(shù)、浮點(diǎn)數(shù))

 更新時(shí)間:2022年11月10日 08:49:10   作者:Not?Talk  
C語言給定了一些基本的數(shù)據(jù)類型,下面這篇文章主要給大家介紹了關(guān)于重學(xué)c/c++之?dāng)?shù)據(jù)存儲(chǔ)(整數(shù)、浮點(diǎn)數(shù))的相關(guān)資料,文中通過實(shí)例代碼介紹的非常詳細(xì),需要的朋友可以參考下

一:整形

正常情況下

正數(shù)在內(nèi)存中的存儲(chǔ)為補(bǔ)碼。

char a=30;

00011110(計(jì)算機(jī)中的存儲(chǔ))

負(fù)數(shù)在內(nèi)存中的存儲(chǔ)為補(bǔ)碼。

char a=-30;

10011110(原碼)
11100001(反碼)
11111011(計(jì)算機(jī)中的存儲(chǔ))

注意的是當(dāng)數(shù)據(jù)存在溢出的時(shí)候,會(huì)變成負(fù)數(shù),如下圖。

int main() {
    char a=130;
    printf("%d",a);// -126
}

分析

10000010(計(jì)算機(jī)中的存儲(chǔ))

特殊情況下

有符號

unsigned char c=-1;

解釋

10000001(機(jī)器碼)
111111110(反碼)
111111111(補(bǔ)碼,由于是無符號,符號變0,即01111111)

char c=-2;//4294967294

10000000 00000000 00000000 00000010(機(jī)器碼)
11111111 11111111 11111111 11111101(反碼)
11111111 11111111 11111111 11111110 (補(bǔ)碼,由于輸出的是無符號位,所以直接輸出,不需要轉(zhuǎn)化)

數(shù)據(jù)溢出()

正數(shù)(負(fù)數(shù))

 char a=129;
 printf("%d",a);//-127

解釋

1000 0001(首先,會(huì)把129的機(jī)器碼作為補(bǔ)碼存儲(chǔ)在內(nèi)存中)
1111 1111(減一求反得到原碼,然后輸出)
如果只有最高位為負(fù)數(shù),則直接加負(fù)號

char a=-130;

解釋

1000 0010(首先,會(huì)把-130的機(jī)器碼作為補(bǔ)碼存儲(chǔ)在內(nèi)存中)
1000 0001(減一)
0111 1110 2+4+8+16+32+64=126 (得到原碼)

補(bǔ)充

大端存儲(chǔ):數(shù)據(jù)的低位保存在內(nèi)存的高位中,而數(shù)據(jù)的高位保存在內(nèi)存大地位中。
小端存儲(chǔ):數(shù)據(jù)的低位保存在內(nèi)存的高位中,而數(shù)據(jù)的高位保存在內(nèi)存大地位中。

//設(shè)計(jì)一個(gè)小程序來判斷當(dāng)前機(jī)器的字節(jié)序
Bool checkSys(){
int a=1;
return (*(char *)&i);
}

二:浮點(diǎn)型

根據(jù)國際標(biāo)準(zhǔn)IEEE(電氣和電子工程協(xié)會(huì)) 754,任意一個(gè)二進(jìn)制浮點(diǎn)數(shù)V可以表示成下面的形式:

(-1) ^ S * M * 2 ^ E

其中:

  • (-1) ^ S 表示符號位,當(dāng)S=0,V為正數(shù);當(dāng)S=1,V為負(fù)數(shù)。
  • M 表示有效數(shù)字,大于等于1,小于2。
  • 2 ^ E 表示指數(shù)。

注:

1、這里的有效數(shù)字范圍是[1,2),可類比十進(jìn)制中有效數(shù)字的范圍是[1,10)。

2、指數(shù)部分以2為底數(shù),類比十進(jìn)制中指數(shù)部分以10為底數(shù)。

例如十進(jìn)制中的5.0,寫成二進(jìn)制浮點(diǎn)數(shù)是101.0,用該形式表示就是(-1) ^ 0 * 1.01 * 2 ^ 2
(其中S = 0, M = 1.01, E = 2)

又如十進(jìn)制中的-5.5,寫成二進(jìn)制浮點(diǎn)數(shù)是101.1(此處小數(shù)點(diǎn)后的第一位權(quán)重是2 ^(-1),也就是0.5,所以此處是1),用該形式表示就是(-1) ^ 1 * 1.011 * 2 ^ 2

(其中S = 1, M = 1.011, E = 2)

E全為0時(shí)

由于E加上后127為全0,也就是說E的真實(shí)值為-127,即該浮點(diǎn)數(shù)指數(shù)部分是2 ^ (-127),顯然這是一個(gè)極小的數(shù),此時(shí)有效數(shù)字M不再加上第一位的1,而是還原為以0為整數(shù)的小數(shù)。這樣做是為了表示±0,以及接近于0的很小的數(shù)字。

E全為1時(shí)

由于E加上后127為全1,也就是說E的真實(shí)值為128,即該浮點(diǎn)數(shù)指數(shù)部分是2 ^ (128),顯然這是一個(gè)極大的數(shù),此時(shí)表示正負(fù)無窮大(正負(fù)號由S決定)

中以32位浮點(diǎn)數(shù)為例,64位浮點(diǎn)數(shù)同理

總結(jié)

到此這篇關(guān)于重學(xué)c/c++之?dāng)?shù)據(jù)存儲(chǔ)的文章就介紹到這了,更多相關(guān)c/c++數(shù)據(jù)存儲(chǔ)內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • 利用ace的ACE_Task等類實(shí)現(xiàn)線程池的方法詳解

    利用ace的ACE_Task等類實(shí)現(xiàn)線程池的方法詳解

    本篇文章是對利用ace的ACE_Task等類實(shí)現(xiàn)線程池的方法進(jìn)行了詳細(xì)的分析介紹,需要的朋友參考下
    2013-05-05
  • C++ 關(guān)于MFC多線程編程的注意事項(xiàng)

    C++ 關(guān)于MFC多線程編程的注意事項(xiàng)

    這篇文章主要介紹了C++ 關(guān)于MFC多線程編程的注意事項(xiàng)的相關(guān)資料,需要的朋友可以參考下
    2015-06-06
  • EasyC++模板重載

    EasyC++模板重載

    這篇文章主要介紹了C++模板重載,重載的模板的函數(shù)特征,也就是入?yún)⒌臄?shù)量和類型必須有所不同,下面我們講舉例說明此內(nèi)容,具有一定的參考價(jià)值,需要的小伙伴可以參考一下
    2021-12-12
  • C++實(shí)現(xiàn)LeetCode(173.二叉搜索樹迭代器)

    C++實(shí)現(xiàn)LeetCode(173.二叉搜索樹迭代器)

    這篇文章主要介紹了C++實(shí)現(xiàn)LeetCode(173.二叉搜索樹迭代器),本篇文章通過簡要的案例,講解了該項(xiàng)技術(shù)的了解與使用,以下就是詳細(xì)內(nèi)容,需要的朋友可以參考下
    2021-08-08
  • C++編寫高性能服務(wù)器實(shí)例教程

    C++編寫高性能服務(wù)器實(shí)例教程

    這篇文章主要介紹了如何用C++編寫高性能服務(wù)器,文中通過示例代碼介紹的非常詳細(xì),對大家學(xué)習(xí)C++有一定的參考價(jià)值,需要的朋友們可以了解下
    2020-06-06
  • C++中需要注意的細(xì)節(jié)你知道嗎

    C++中需要注意的細(xì)節(jié)你知道嗎

    這篇文章主要介紹了C++ 需要注意的幾點(diǎn)細(xì)節(jié),幫助大家更好的理解和學(xué)習(xí)C++,感興趣的朋友可以了解下,希望能夠給你帶來幫助
    2021-09-09
  • Visual?Studio?2022下載安裝與使用超詳細(xì)教程

    Visual?Studio?2022下載安裝與使用超詳細(xì)教程

    這篇文章主要介紹了Visual?Studio?2022最新版安裝與使用教程,本文以社區(qū)版為例通過圖文并茂的形式給大家介紹Visual?Studio?2022安裝使用,需要的朋友可以參考下
    2022-04-04
  • C++實(shí)現(xiàn)二分法求方程近似解

    C++實(shí)現(xiàn)二分法求方程近似解

    這篇文章主要為大家詳細(xì)介紹了C++實(shí)現(xiàn)二分法求方程近似解,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2021-05-05
  • C++中輸入輸出流及文件流操作總結(jié)

    C++中輸入輸出流及文件流操作總結(jié)

    這篇文章主要為大家總結(jié)了C++中輸入輸出流及文件流操作,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2016-10-10
  • C++實(shí)現(xiàn)推箱子小游戲源碼

    C++實(shí)現(xiàn)推箱子小游戲源碼

    這篇文章主要為大家詳細(xì)介紹了C++實(shí)現(xiàn)推箱子小游戲源碼,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2019-07-07

最新評論