在訪談中的一個。有人問我想在字符數據類型中存儲999值。怎麼做。如何在字符數據類型中存儲999值
999 = 1111100111(在二進制表示)
字符的類型是1字節的。 8位。
int main()
{
int a =999;
signed char c = 999;
printf("%d %d",a,c);
}
當我編譯的程序中,我得到的警告,
storeintinchar.c:6:1: warning: overflow in implicit constant conversion [-Woverflow]
當我運行它:
a=999. c=-25;
當我改變character
到unsigned char c=999;
,當我編譯程序我得到警告的
storeintinchar.c:6:1: warning: large integer implicitly truncated to unsigned type [-Woverflow]
當我運行它。
a=999. c=231;
- 我們可以存儲在字符999價值在於它能夠以任何方式做到這一點。
- 面試官試圖測試什麼?
是否可以在wchar_t中存儲999值。當我在GNU C Library中搜索上面的問題時,wchar_t始終是32位寬。然後我們可以使用它。是否有效
int main() { int a = 999; unsigned char c = 999; wchar_t d = 999; 012fprintf(「%d%d%d」,a,c,d);
}
輸出:999 231 999
wchar_t的是4個字節。我能夠存儲999值。
我感謝所有的人提供快速結果和給出合理的答案的計算器的一部分。
簡短而唯一的答案是:你不能。 'char'通常是一個字節,8位,不能存儲該範圍以外的值。但是可以使用按位運算將它存儲在* two *'char'變量中。 –
其實你已經在你的問題中回答了你自己的問題。面試官可能想測試你的基本計算技能。 –
您不能在字符中存儲999,但可以在wchar中存儲。就像邁克爾說的那樣,這是對一般計算知識的測試。 – user3386109