c语言中十六进制转二进制显示的实现方法

2016-02-19 09:06 173 1 收藏

下面图老师小编跟大家分享c语言中十六进制转二进制显示的实现方法,一起来学习下过程究竟如何进行吧!喜欢就赶紧收藏起来哦~

【 tulaoshi.com - 编程语言 】

代码如下:

//======================================

//输出格式: hex2bin 5e.

//得到: 0101 1110

//======================================

(本文来源于图老师网站,更多请访问https://www.tulaoshi.com/bianchengyuyan/)

#include stdio.h
#include limits.h

char *bitstr(char *, void const *, size_t);

int main(int argc, char **argv)
{

   unsigned char value;
   char *pointer;
   char ebits[CHAR_BIT * sizeof value + 1];

  
   value = 0;

   for (pointer = argv[1]; *pointer; ++pointer) {
     value = 4;
     switch (*pointer) {
        case 'a':
        case 'A':
            value += 0xa;
            break;
        case 'b':
        case 'B':
            value += 0xb;
            break;
        case 'c':
        case 'C':
            value += 0xc;
            break;
        case 'd':
        case 'D':
            value += 0xd;
            break;
        case 'e':
        case 'E':
            value += 0xe;
            break;
        case 'f':
        case 'F':
            value += 0xf;
            break;
        default:
            value += *pointer - '0';
            break;
  }
   }
   bitstr(ebits, &value, sizeof value);
   printf("The binary representation of 0x%s is ", argv[1]);

   for (pointer = ebits, value = 0; *pointer != ''; ++pointer) {
    if(value 3) {
           value = 0;
     putchar(' ');
           putchar(*pointer);
    }
    else {
     value++;
        putchar(*pointer);
    }
   }
  

(本文来源于图老师网站,更多请访问https://www.tulaoshi.com/bianchengyuyan/)

   return 0;
}

char *bitstr(char *str, const void *obj, size_t n)
{
   unsigned char mask;
   const unsigned char *byte = obj;
   char *const ptr = str;

   while (n--) {
      mask = ((unsigned char)-1 1) + 1;
      do {
         *str++ = (char)(mask & byte[n] ? '1' : '0');
         mask = 1;
      } while (mask);
   }
   *str = '';
   return ptr;
}

来源:https://www.tulaoshi.com/n/20160219/1589565.html

延伸阅读
《二进制领域》文字流程 操作 X:近身攻击 A:找掩体,爬椅子/按住冲刺 B:拿取物品,按开关 Y:注视 LB:队友指挥,对话选择 RB:装弹/按住大威力能量球 LT:瞄准 RT:射击 LS:角色移动 RS:视角 第一章 边打边跑 一上来主角(名字叫蛋,不,是丹,音译都一样)出现很突兀,和他在一起的是个老黑(代号大波,这作的名字都这么直接...
Oracle text是Oracle的全文检索技术,是9i版本标准版和企业版的一部分。Oracle text使用标准的sql语言索引、查找、分析存储在oracle数据库、文件或者网络里的文本及文档。 Oracle text能进行关于文档的语言分析,使用多种方法查找文档,包括关键字、上下文查询、逻辑操作、模式匹配、混合主题查询、HTML/XML段落查找等方法。Oracle text在...
《二进制领域》游戏评测 游戏简介   《二进制领域》由开发了《如龙》系列的知名制作人名越稔洋打造,是一款追求在线对战乐趣的射击游戏。故事发生在2080年的东京,人类为了生存而与背叛的机器人展开厮杀。本作中,玩家们将和多名同伴一起行动,采用互相协力来进行战斗的Team Action,是一款以团队行动为主题的动作射击游戏。玩家们必须根...
游戏地域《二进制领域》解说视频   解说视频一: 《二进制领域》关于进游戏黑边的解决办法 不是游戏版本问题,也不是你电脑问题 是你进游戏没调整的问题 看图吧: 《二进制领域》图文流程攻略 游戏开始教程跟着小胖对话,把语音系统关掉,Q,E,F,空格,是360的4个键.大致自己按一下. .. 过了教程后一路跟小胖走,会遇到第一波敌人.&...
《二进制领域》视频流程攻略 游戏简介 《二进制领域》由开发了《如龙》系列的知名制作人名越稔洋打造,是一款追求在线对战乐趣的射击游戏。故事发生在2080年的东京,人类为了生存而与背叛的机器人展开厮杀。《二进制领域》将登陆PS3与XBOX360平台,游戏预定2012年2月发售。 本作中,玩家们将和多名同伴一起行动,采用互相协力来进行战斗的Tea...

经验教程

831

收藏

46
微博分享 QQ分享 QQ空间 手机页面 收藏网站 回到头部