0
我需要找到一個有符號的int,它是negtavie,但是作爲unsinged int等於22(意思是在wrap around發生後)。 int被輸入爲字符串,並用「atoi」轉換。c整數溢出 - 環繞
我需要找到一個有符號的int,它是negtavie,但是作爲unsinged int等於22(意思是在wrap around發生後)。 int被輸入爲字符串,並用「atoi」轉換。c整數溢出 - 環繞
實現此目的的唯一方法是使用5位長的整數類型,並將其包裝爲16..31之間的負值。
struct foo_t {
int bar: 5;
} foo;
int main(void)
{
foo.bar = 22;
printf("Signed: %d\n", foo.bar);
return 0;
}
但位域不正當無論如何,所以我很抱歉......
某些東西'bitfield有符號/無符號實現定義'... – EOF
什麼是你的問題? – Javia1492
沒有這樣的數字,當轉換爲'unsigned'時,所有負的'int'都會產生一個大於'UINT_MAX/2'的值。 –