湘潭關(guān)鍵詞優(yōu)化報(bào)價(jià)成都網(wǎng)站建設(shè)方案優(yōu)化
前言:時(shí)光如梭💦,今天到了C語言進(jìn)階啦😎,基礎(chǔ)知識(shí)我們已經(jīng)有了初步認(rèn)識(shí), 是時(shí)候該拔高拔高自己了😼。
目標(biāo):掌握浮點(diǎn)數(shù)在內(nèi)存的存儲(chǔ),整形在內(nèi)存的存儲(chǔ)。
雞湯:時(shí)光易過,歲月蹉跎。??
深度剖析數(shù)據(jù)在內(nèi)存中的存儲(chǔ)
1??數(shù)據(jù)類型的介紹
前面已經(jīng)講解過了,可以再看一遍,熟悉熟悉,這里有些沒有見過,沒關(guān)系,后面會(huì)詳細(xì)介紹。
🚩1.類型的基本歸類
當(dāng)然,這里有些沒有學(xué)過,沒得關(guān)系,咱們一步一步來,不要一口吃成一個(gè)胖子。
2??整形在內(nèi)存的存儲(chǔ)
其實(shí)我們知道,整形在內(nèi)存為4個(gè)字節(jié),32個(gè)比特位,以二進(jìn)制的形式存儲(chǔ),讓我們?cè)倏纯炊M(jìn)制等其它進(jìn)制
😸二進(jìn)制:以0和1的形式來表示一個(gè)數(shù)據(jù)
😸八進(jìn)制:以0開頭如:0 123456
😸十進(jìn)制:十進(jìn)制就是生活中的進(jìn)制 如:10
😸十六進(jìn)制:以0x開頭如:0x443322211
🚩1.原碼,反碼,補(bǔ)碼
在前面我們已經(jīng)知道,這里就鞏固鞏固🤓🤓
🫤原碼:以二進(jìn)制的形式存儲(chǔ)
🫤反碼:原碼中符號(hào)位不變,其它位按位取反
🫤補(bǔ)碼:在反碼的基礎(chǔ)上,加一
??正數(shù)的原碼,反碼,補(bǔ)碼相同。
??在數(shù)據(jù)存儲(chǔ)中,以補(bǔ)碼的形式存儲(chǔ)
🚩2大小端介紹
??如果最高位的字節(jié)數(shù)據(jù)存在最低地址上,而次高位的字節(jié)數(shù)據(jù)按次序排列在次低的地址上,那么這種存儲(chǔ)方式就叫大端存儲(chǔ)。
??如果最低位的字節(jié)數(shù)據(jù)存在最低地址上,而次低位的字節(jié)數(shù)據(jù)按次序排列在次低的地址上,那么這種存儲(chǔ)方式就叫小端存儲(chǔ)。
🚩3練習(xí)
有符號(hào)和無符號(hào)的區(qū)別
?unsigned char:無符號(hào)(把最高的符號(hào)位當(dāng)做數(shù)值)
?signed char:有符號(hào)(正常計(jì)算)
?技巧:無符號(hào)直接用補(bǔ)碼,有符號(hào)找原碼
?1000 0000最小值 -128(無法計(jì)算,這里說的是有符號(hào)數(shù))
?1111 1111 255(這里是無符號(hào)的數(shù)值)
有了上面的認(rèn)識(shí),下面的練習(xí)會(huì)簡單不少😳😳😳
🏴第一題
#include<stdio.h>
//輸出結(jié)果
int main()
{char a = -1;signed char b = -1;unsigned char c = -1;printf("a=%d,b=%d,c=%d\n", a, b, c);// -1 -1 255return 0;
}
🏴第二題
#include<stdio.h>
//輸出結(jié)果
int main()
{char a = -128;//%u是無符號(hào)數(shù)printf("%u\n", a);return 0;
}
//4294967168
🏴第三題
#include<stdio.h>
//輸出結(jié)果
int main()
{char a = 128;//%u是無符號(hào)數(shù)printf("%u\n", a);return 0;
}
//4294967168
3??浮點(diǎn)數(shù)在內(nèi)存的存儲(chǔ)
🚩1一個(gè)例子讓你看清浮點(diǎn)數(shù)的存儲(chǔ)
#include<stdio.h>int main()
{int n = 9;float* pfloat = (float*)&n;printf("n的值為:%d\n", n);printf("*pflaot的值為:%f\n", *pfloat);*pfloat = 9.0;printf("n的值為:%d\n", n);printf("*pflaot的值為:%f\n", *pfloat);return 0;
}
很多小伙伴有問號(hào)😭😭😭,先拋出問題,咱們后面一一講解。
🚩2浮點(diǎn)數(shù)存儲(chǔ)的規(guī)則
💦公式:浮點(diǎn)數(shù) =(-1)^s × M × 2 ^ E
💫s:只能是 0 或 1,代表數(shù)字的正負(fù)
💫M: 是二進(jìn)制的科學(xué)計(jì)數(shù)法
💫E: 為次冪 + 127
以-5.0為例:
二進(jìn)制為:-101.0
二進(jìn)制的科學(xué)計(jì)數(shù)法為:-1.01×2^2
所以:s = 1, M = 10 ,E = 2 + 127。
那我們?cè)俜祷乜纯辞懊娴睦?#xff0c;是不是瞬間就懂了呢?這里博主就講解了,師傅領(lǐng)進(jìn)們,修行靠個(gè)人。
4??結(jié)尾
今天內(nèi)容就到這里,時(shí)間過得很快,大家沉下心來好好學(xué)習(xí),會(huì)有一定的收獲的,大家多多堅(jiān)持,嘻嘻,成功路上注定孤獨(dú),因?yàn)閳?jiān)持的人不多。那請(qǐng)大家舉起自己的小說給博主一鍵三連,有你們的支持是我最大的動(dòng)力💞💞💞,回見。