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