小编Ros*_*nan的帖子

C中的逐位串联

我试图在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 做这个是一个问题吗?

c binary printf bit-manipulation bitwise-operators

2
推荐指数
1
解决办法
1万
查看次数

标签 统计

binary ×1

bit-manipulation ×1

bitwise-operators ×1

c ×1

printf ×1