티스토리 뷰
// C/C++
// [VC] suppress error messages about obsolete & deprecated functions
#pragma warning(disable : 4996)
#define _CRT_SECURE_NO_WARNINGS
#define _CRT_SECURE_NO_WARNINGS_GLOBALS
#include <cstdio>
#include <cstdlib>
#define LENGTH 11
int main(int argc, char **argv)
{
    char buffer[LENGTH];
    int number = 0;
    do {
        fgets(buffer, LENGTH, stdin);
        number = atoi(buffer);
    } while (number < 0);
    printf("%12s %d\n", "Integer", number);
    printf("%12s %X\n", "Hexadecimal", number);
    printf("%12s ", "Binary");
    unsigned int mask = 0;
    // this grotesque hack creates a bit pattern 1000...
    // regardless of the size of an unsigned int
    mask = ~mask ^ (~mask >> 1);
    // print out all bits of n
    while (mask != 0)
    {
        // !!x is 0 if x is 0 and 1 if x is anything else
        printf("%d", !!(number & mask));
        mask = mask >> 1;
    }
    putchar('\n');
    return EXIT_SUCCESS;
}
// C/C++
// [VC] suppress error messages about obsolete & deprecated functions
#pragma warning(disable : 4996)
#define _CRT_SECURE_NO_WARNINGS
#define _CRT_SECURE_NO_WARNINGS_GLOBALS
#include <iostream>
#include <string>
#define LENGTH 11
using namespace std;
int main(int argc, char **argv)
{
    char buffer[LENGTH];
    int number = 0;
    do {
        fgets(buffer, LENGTH, stdin);
        number = atoi(buffer);
    } while (number < 0);
    printf("%12s %d\n", "Integer", number);
    printf("%12s %X\n", "Hexadecimal", number);
    string binary = "";
    int remainder = 0;
    do {
        remainder = number % 2;
        itoa(remainder, buffer, 10); // here 10 means decimal
        binary.insert(0, buffer);
        number = number / 2;
    } while (number != 0);
    printf("%12s %s\n", "Binary", binary.c_str());
    return EXIT_SUCCESS;
}
'Puzzle > Exercise' 카테고리의 다른 글
| Integer to Binary Conversion [Python] (0) | 2019.04.19 | 
|---|---|
| Integer to Binary Conversion [Java] (0) | 2019.04.19 | 
| Integer to Binary Conversion [C#] (0) | 2019.04.19 |