c - 逻辑运算后十六进制到bin

标签 c casting hex

我要:

111 || 100  ---> 111,  not 1
100 && 100  ---> 100,  not 1
101 && 010  ---> 000,  not 0

损坏的代码

#include <stdio.h>

main(void){
        string hexa = 0xff;
        strig hexa2 = 0xf1;

        // CONVERT TO INT??? cast
        int hexa3 = hexa || hexa2;
        int hexa4 = hexa && hexa2;

        puts(hexa3);
        puts(hexa4);
}

最佳答案

您需要按位运算符(|&)而不是逻辑运算符(||&& >):

110 | 011 --> 111
110 & 101 --> 100

至于你的损坏代码,你还有 hexahexb 的错误类型,它们应该都是数字类型:

int hexa = 0xff;
int hexa2 = 0xf1;

最后,要输出一个整数,您可以使用 printf 来格式化它们:

printf("hexa3 = 0x%08x\n", heaxa3);   // display as 8 digit, 0 padded hex

关于c - 逻辑运算后十六进制到bin,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2953897/

相关文章:

c - 无法在 fork 进程中设置 OpenMP 线程关联

c - 无法命中 0xff

casting - 转换相同底层类型的枚举变体

objective-c - %qx 格式说明符是什么意思

java - 在Java中不使用导入将Int转换为两位数的十六进制

c - C 中函数参数/调用函数的问题

c - unsigned char 在 C 嵌入式系统中的用处

c# - 是否可以转换对象图?

c# - 如何从Xml作为对象而不是字符串检索值?

java - 使用 Clojure 中的 Apache Commons 编解码器解码Base64