課程
/后端開發(fā)
/C
/C語言入門
為什么慕課網(wǎng)這幾個字占了9個字節(jié)?不應(yīng)該是6嘛?
一個字難道不是占2個?
2015-10-20
源自:C語言入門 6-8
正在回答
每個字符占幾個字節(jié)是由選用的 字符集 和 字符集編碼 決定的,中文字符并不一定占用2個字節(jié)。
簡單地說,為了表示文字的字符,人們給每一個字符都編了一個數(shù)字代碼,這樣字符代碼的合集叫做“字符集”。最常見的字符集就是ASCII,拉丁字母和標點符號及控制字符都有自己的代碼。我國發(fā)布有GB2312字符集,中文Windows中使用的就是這個。
但不同的國家為不同的語言發(fā)布這么多的字符集使用起來很麻煩。它們不一定兼容,同一個代碼在不同的字符集中可能代表不同的字符,這也是過去上網(wǎng)時常碰到亂碼的原因。為了解決這個問題,人們發(fā)明了unicode,目標給予將世界上所有語言的每一個字符一個不同的代碼,這樣就將全世界的字符都編到了一個字符集中,不會再有切換字符集的麻煩,也不會再有亂碼。
前面說的字符集規(guī)定了每一個字符的代碼,而如何將代碼儲存起來就成了另外一個問題。比如a在ASCII中的代碼是97,那要怎么在計算機中保存這個數(shù)字97呢? 記錄成浮點數(shù)97.0嗎? 還是記錄成整型97? ?這種記錄方式就叫字符集編碼。
當(dāng)然我們知道ASCII碼就是簡單地記錄下整型值,每個字符占用1字節(jié)。
GB2312的編碼方式是記錄到2個字節(jié)中。
unicode有多種編碼方式,最常用的是UTF-8,這是一種可變長度的編碼,它將字符記錄到1-4個不等的字節(jié)中。好處就是可以節(jié)省空間,如ASCII字符還是會記錄為1個字節(jié),而中文字符一般記錄到3個字節(jié)中。
現(xiàn)在在網(wǎng)頁中使用UTF-8幾乎已經(jīng)成為國際標準了。而在編程方面,編譯器會決定采用哪種字符集和字符集編碼來保存字符。 看來本站的編譯器將漢字記錄為3個字節(jié)了。
python小白1_0 提問者
define_ray
為什么我用軟件試了一下程序 輸出是6啊
一個字占了2.5個字節(jié)其實,但是內(nèi)存分配是一個字節(jié)4個位,但是一般都是占4個位,相當(dāng)于你1一個字占了12個位,
所以一個字相當(dāng)于占用了12個位,當(dāng)然等于9個字節(jié)。
....我好久沒看C語言了,但是我知道這個東西.. ?
不知道有沒有說錯,希望可以幫助你理解,你可以再學(xué)一下匯編,就比較好理解了
舉報
C語言入門視頻教程,帶你進入編程世界的必修課-C語言
4 回答int型占幾個字節(jié)?
3 回答整型256占幾個字節(jié)?
4 回答一個數(shù)字占幾個字符
1 回答一個漢字幾個字節(jié)?
1 回答'a'在內(nèi)存中占幾個字節(jié)
Copyright ? 2025 imooc.com All Rights Reserved | 京ICP備12003892號-11 京公網(wǎng)安備11010802030151號
購課補貼聯(lián)系客服咨詢優(yōu)惠詳情
慕課網(wǎng)APP您的移動學(xué)習(xí)伙伴
掃描二維碼關(guān)注慕課網(wǎng)微信公眾號
2015-10-21
每個字符占幾個字節(jié)是由選用的 字符集 和 字符集編碼 決定的,中文字符并不一定占用2個字節(jié)。
簡單地說,為了表示文字的字符,人們給每一個字符都編了一個數(shù)字代碼,這樣字符代碼的合集叫做“字符集”。最常見的字符集就是ASCII,拉丁字母和標點符號及控制字符都有自己的代碼。我國發(fā)布有GB2312字符集,中文Windows中使用的就是這個。
但不同的國家為不同的語言發(fā)布這么多的字符集使用起來很麻煩。它們不一定兼容,同一個代碼在不同的字符集中可能代表不同的字符,這也是過去上網(wǎng)時常碰到亂碼的原因。為了解決這個問題,人們發(fā)明了unicode,目標給予將世界上所有語言的每一個字符一個不同的代碼,這樣就將全世界的字符都編到了一個字符集中,不會再有切換字符集的麻煩,也不會再有亂碼。
前面說的字符集規(guī)定了每一個字符的代碼,而如何將代碼儲存起來就成了另外一個問題。比如a在ASCII中的代碼是97,那要怎么在計算機中保存這個數(shù)字97呢? 記錄成浮點數(shù)97.0嗎? 還是記錄成整型97? ?這種記錄方式就叫字符集編碼。
當(dāng)然我們知道ASCII碼就是簡單地記錄下整型值,每個字符占用1字節(jié)。
GB2312的編碼方式是記錄到2個字節(jié)中。
unicode有多種編碼方式,最常用的是UTF-8,這是一種可變長度的編碼,它將字符記錄到1-4個不等的字節(jié)中。好處就是可以節(jié)省空間,如ASCII字符還是會記錄為1個字節(jié),而中文字符一般記錄到3個字節(jié)中。
現(xiàn)在在網(wǎng)頁中使用UTF-8幾乎已經(jīng)成為國際標準了。而在編程方面,編譯器會決定采用哪種字符集和字符集編碼來保存字符。 看來本站的編譯器將漢字記錄為3個字節(jié)了。
2016-01-06
為什么我用軟件試了一下程序 輸出是6啊
2015-10-20
一個字占了2.5個字節(jié)其實,但是內(nèi)存分配是一個字節(jié)4個位,但是一般都是占4個位,相當(dāng)于你1一個字占了12個位,
所以一個字相當(dāng)于占用了12個位,當(dāng)然等于9個字節(jié)。
....我好久沒看C語言了,但是我知道這個東西.. ?
不知道有沒有說錯,希望可以幫助你理解,你可以再學(xué)一下匯編,就比較好理解了