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としての活動費に充てさせて頂きます。