所以我只是在修补C并希望看看我是否可以将二进制值分配给整数并使用printf()函数输出有符号或无符号值.但是无论我得到相同的输出,我都认为与无符号相比,打印签名的价值只有一半.我正在使用Code :: blocks和GCC.
printf()是否忽略%i和%u并使用变量定义?
示例代码:
#include <stdio.h>
#include <stdlib.h>
int main()
{
signed int iNumber = 0b1111111111111111;
printf("Signed Int : %i\n", iNumber);
printf("Unsigned Int : %u\n", iNumber);
return 0;
}
Run Code Online (Sandbox Code Playgroud)
如果我将int更改为unsigned,结果相同:
#include <stdio.h>
#include <stdlib.h>
int main()
{
unsigned int iNumber = 0b1111111111111111;
printf("Signed Int : %i\n", iNumber);
printf("Unsigned Int : %u\n", iNumber);
return 0;
}
Run Code Online (Sandbox Code Playgroud)