見出し画像

Binary number in C++

はじめに

C++で、2進数表記での代入、2進数でのprintf、をしたい時があります。従来、C/C++で、2進数での代入はできなかったのですが、C++14で対応されたようなので、こちらを紹介します。

環境

* MacBook Pro(Retina, 15-inch Mid 2015)
* XCode v7.2


Source code

今回は、短いので全文載せておきます。
一応、Githubにも上げておきますが。

/************************************************************
************************************************************/
#include <stdio.h>
#include <stdlib.h>
// #define CHAR_BIT 8
#include <limits.h>

/************************************************************
************************************************************/
void printb(unsigned int v)
{
    unsigned int mask = (int)1 << (sizeof(v) * CHAR_BIT - 1);
    do
        putchar(mask & v ? '1' : '0');
    while (mask >>= 1);
}

void printb_ln(unsigned int v)
{
    putchar('0'), putchar('b'), printb(v), putchar('\n');
}

int main()
{
    int x = 0b11111001;
    printf("0x%X\n", x);
    printb_ln(x);
    return 0;
}


もしよろしければ、サポートをお願いします! 頂いたサポートは、Creatorとしての活動費に充てさせて頂きます。