我需要找到一个带符号的int,它是negtavie但是作为一个unsinged int等于22(意味着在发生回绕之后)。 int被输入为字符串并用“atoi”转换。
答案 0 :(得分:0)
实现此目的的唯一方法是使用一个5位长的整数类型并将其包含在16..31之间的负值。
struct foo_t {
int bar: 5;
} foo;
int main(void)
{
foo.bar = 22;
printf("Signed: %d\n", foo.bar);
return 0;
}
但无论如何,bitfields都是反常的,所以我道歉......