首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >提取整型二进制表示的最后四位数

提取整型二进制表示的最后四位数
EN

Stack Overflow用户
提问于 2014-12-03 12:08:40
回答 4查看 1.3K关注 0票数 2

我在提取二进制表示的最后4个数字时遇到了问题,我的数字是:,我得到了第一个4,但是我得到了最后四个^:

代码语言:javascript
运行
复制
 # include <stdio.h>
 # include <stdlib.h>
 # define BYTETOBINARYPATTERN "%d%d%d%d%d%d%d%d\n"
 # define BYTETOBINARY(byte)  \
 (byte & 0x80 ? 1 : 0), \
 (byte & 0x40 ? 1 : 0), \
 (byte & 0x20 ? 1 : 0), \
 (byte & 0x10 ? 1 : 0), \
 (byte & 0x08 ? 1 : 0), \
 (byte & 0x04 ? 1 : 0), \
 (byte & 0x02 ? 1 : 0), \
 (byte & 0x01 ? 1 : 0) 

 int main()
 {
    int num = 505;
    PRINTBIN (num);

    //  int result = num & bitwise;
    //PRINTBIN(result);
    // first num;
    int i;
    int bit=0x01;
    int bitwise;
    for (i =0;i<4;i++)
    {
        int bit1=bit<<i;
        bitwise = bit1|bit;

    }
    printf("1:%d\n", bitwise);
    PRINTBIN(bitwise);

    //second num;
    int bitwise1;
    int b0 = 0;
    int bit2;
    for(i=0;i<4;i++)
    {
         bit2 = bit<<(4+i);
         bitwise1 = bit2|b0;    
         PRINTBIN(bit2);
    }
    printf("2:%d\n",bitwise1);
    PRINTBIN(bitwise1);

    return 0;

}
EN

Stack Overflow用户

发布于 2014-12-03 12:41:05

如果您只想显示4位数,只需使用查找表,因为我们已经知道所有可能的表示形式。如果您想在其他位置显示另外4位数字,只需在num&0x0F之后进行移位,但掩码将是其他值而不是0x0F

代码语言:javascript
运行
复制
const char * bin[16] = {
    "0000",
    "0001",
    "0010",
    ......
    "1111"
};

printf("%s\n", bin[num&0x0F]);
票数 2
EN
查看全部 4 条回答
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/27263467

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档