기본 변환 C 언어 구현
필수 헤더 파일
#include <stdio.h>
#include <string>
#include <string.h>
#include <map>
#include <iostream>
using namespace std;
Decimal to Binary
// Decimal to Binary
string Decimal_to_Binary (int decimal, int bits) // Decimal은 변환 할 10 진수, 비트는 출력 자릿수입니다.
{
char bin[bits+2];
bin[0] = '0';
bin[1] = 'b';
int quotient = decimal; //商
int remainder = 0; //余数
int i;
for(i=bits+2; i>2; i--)
{
remainder = quotient % 2;
switch(remainder)
{
case 0:
{
bin[i-1] = '0';
break;
}
case 1:
{
bin[i-1] = '1';
break;
}
default:
{
break;
}
}
quotient = quotient / 2;
}
return bin;
}
10 진수에서 8 진수
// 10 진수에서 8 진수
문자열로 Decimal_to_Octal (int decimal, int bits) // Decimal은 변환 할 10 진수, 비트는 출력 자릿수입니다.
{
char octal[bits+1];
octal[0] = '0';
int quotient = decimal; //商
int remainder = 0; //余数
int i;
for(i=bits+1; i>1; i--)
{
remainder = quotient % 8;
switch(remainder)
{
case 0:
{
octal[i-1] = '0';
break;
}
case 1:
{
octal[i-1] = '1';
break;
}
case 2:
{
octal[i-1] = '2';
break;
}
case 3:
{
octal[i-1] = '3';
break;
}
case 4:
{
octal[i-1] = '4';
break;
}
case 5:
{
octal[i-1] = '5';
break;
}
case 6:
{
octal[i-1] = '6';
break;
}
case 7:
{
octal[i-1] = '7';
break;
}
default:
{
break;
}
}
quotient = quotient / 8;
}
return octal;
}
10 진수를 16 진수로
// 10 진수를 16 진수로
문자열 Decimal_to_Hexadecimal (int decimal, int bits) // Decimal은 변환 할 10 진수, 비트는 출력 자릿수입니다.
{
char hexadecimal[bits+2];
hexadecimal[0] = '0';
hexadecimal[1] = 'x';
int quotient = decimal; //商
int remainder = 0; //余数
int i;
for(i=bits+2; i>2; i--)
{
remainder = quotient % 16;
switch(remainder)
{
case 0:
{
hexadecimal[i-1] = '0';
break;
}
case 1:
{
hexadecimal[i-1] = '1';
break;
}
case 2:
{
hexadecimal[i-1] = '2';
break;
}
case 3:
{
hexadecimal[i-1] = '3';
break;
}
case 4:
{
hexadecimal[i-1] = '4';
break;
}
case 5:
{
hexadecimal[i-1] = '5';
break;
}
case 6:
{
hexadecimal[i-1] = '6';
break;
}
case 7:
{
hexadecimal[i-1] = '7';
break;
}
case 8:
{
hexadecimal[i-1] = '8';
break;
}
case 9:
{
hexadecimal[i-1] = '9';
break;
}
case 10:
{
hexadecimal[i-1] = 'a';
break;
}
case 11:
{
hexadecimal[i-1] = 'b';
break;
}
case 12:
{
hexadecimal[i-1] = 'c';
break;
}
case 13:
{
hexadecimal[i-1] = 'd';
break;
}
case 14:
{
hexadecimal[i-1] = 'e';
break;
}
case 15:
{
hexadecimal[i-1] = 'f';
break;
}
default:
{
break;
}
}
quotient = quotient / 16;
}
return hexadecimal;
}
Binary to Decimal
// Binary to Decimal
int Binary_to_Decimal (char Binary []) // Decimal은 변환 할 이진수, 입력시 접두사 "0b"
{
int length = strlen(Binary);
int i;
int decimal = 0;
for(int i=2; i<length; i++)
{
decimal = decimal * 2;
switch(Binary[i])
{
case '0':
{
break;
}
case '1':
{
decimal = decimal + 1;
break;
}
default:
{
break;
}
}
}
return decimal;
}
Octal to Decimal
// Octal to Decimal
int Octal_to_Decimal (char Octal []) // Decimal은 변환 할 이진수이며 입력시 접두사 "0"입니다.
{
int length = strlen(Octal);
int i;
int decimal = 0;
for(int i=1; i<length; i++)
{
decimal = decimal * 8;
switch(Octal[i])
{
case '0':
{
break;
}
case '1':
{
decimal = decimal + 1;
break;
}
case '2':
{
decimal = decimal + 2;
break;
}
case '3':
{
decimal = decimal + 3;
break;
}
case '4':
{
decimal = decimal + 4;
break;
}
case '5':
{
decimal = decimal + 5;
break;
}
case '6':
{
decimal = decimal + 6;
break;
}
case '7':
{
decimal = decimal + 7;
break;
}
default:
{
break;
}
}
}
return decimal;
}
16 진수에서 10 진수로
// 16 진수에서 10 진수로
int Hexadecimal_to_Decimal (char Hexadecimal []) // Decimal은 변환 할 2 진수이며 입력시 접두사 "0x"입니다.
{
int length = strlen(Hexadecimal);
int i;
int decimal = 0;
for(int i=2; i<length; i++)
{
decimal = decimal * 16;
switch(Hexadecimal[i])
{
case '0':
{
break;
}
case '1':
{
decimal = decimal + 1;
break;
}
case '2':
{
decimal = decimal + 2;
break;
}
case '3':
{
decimal = decimal + 3;
break;
}
case '4':
{
decimal = decimal + 4;
break;
}
case '5':
{
decimal = decimal + 5;
break;
}
case '6':
{
decimal = decimal + 6;
break;
}
case '7':
{
decimal = decimal + 7;
break;
}
case '8':
{
decimal = decimal + 8;
break;
}
case '9':
{
decimal = decimal + 9;
break;
}
case 'a':
{
decimal = decimal + 10;
break;
}
case 'b':
{
decimal = decimal + 11;
break;
}
case 'c':
{
decimal = decimal + 12;
break;
}
case 'd':
{
decimal = decimal + 13;
break;
}
case 'e':
{
decimal = decimal + 14;
break;
}
case 'f':
{
decimal = decimal + 15;
break;
}
default:
{
break;
}
}
}
return decimal;
}