关于取反位运算的问题
程序代码:
int main(void) { unsigned int a = 5; printf("%u",~a); return 0; }
这里得到的是:4294967290 而不是期待的 2
int main(void) { unsigned int a = 5; printf("%u",~a); return 0; }
int main(void) { unsigned int a = 5,b=1; while(b<a) b*=2; printf("%u",(~a)&(b-1)); return 0; }