开发平台(Platform): (Ex: Win10, Linux, ...)
Lubuntu (Linux)
编译器(Ex: GCC, clang, VC++...)+目标环境(跟开发平台不同的话需列出)
GCC
额外使用到的函数库(Library Used): (Ex: OpenGL, ...)
n/a
问题(Question):
大家好,新手自学
#include <stdio.h>
#include <stdlib.h>
int main(){
unsigned int a = 10;
signed int b = 10;
a = ~a;
b = ~b;
printf("a : %d\n");
printf("b : %d]n");
}
output :
a = -11
b = -11
这边的问题是有关于 a
a = 10 , in bit 应该是
00000000 00000000 00000000 00001010
a = ~a 之后
11111111 11111111 11111111 11110101
^
not sign bit
我这边一开始设定 a 是 unsigned int
也就是应该第 32 bit 应该不是 sign bit
所以 print out in %d 之后预期的结果应该是 unsigned int 的 最大值 - 10
可是为什么变成了 -11
再请各位前辈解惑了
谢谢
喂入的资料(Input):
资料如上
预期的正确结果(Expected Output):
预期为 unsigned int 最大值 - 11
错误结果(Wrong Output):
no error code
程式码(Code):(请善用置底文网页, 记得排版,禁止使用图档)
code 如上
补充说明(Supplement):
n/a