我试图在C中连接两个二进制数.所以,如果我有1010,0011我想要我的结果10100011.我写了一个我认为可以完成工作的简短例程:
#include <stdio.h>
int main(void) {
int first = 1010;
int second = 0011;
int result = (first << 4) | second;
printf("%d", result);
return 0;
}
Run Code Online (Sandbox Code Playgroud)
我知道打印的数字当然是十进制的,但我想在我的按位操作之后我会得到十进制等值的10100011,或者是163.但是,我的结果打印为16169.所以我想我的问题是......我在这里不明白这部分是什么?这只是对printf如何工作的误解,还是我的按位操作不正确?尝试用ints 做这个是一个问题吗?