基本変換C言語の実装

基本変換C言語の実装

必要なヘッダーファイル

#include <stdio.h>
#include <string>
#include <string.h>
#include <map>
#include <iostream>

using namespace std;

10進数から2進数
// 10進数から2
進数の文字列Decimal_to_Binary(int decimal、int bits)// Decimalは変換される10進数、bitsは出力桁です

{
 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進数、bitsは出力桁です

{
 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進数、bitsは出力桁です

{
 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;
}

2進数から10進数
// 2進数から10進数
intBinary_to_Decimal(char Binary [])// 10進数変換される2進数で、入力時に「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からDecimal
// Octalから
Decimalint Octal_to_Decimal(char Octal [])// Decimalは変換される2進数であり、入力時にプレフィックス「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
進数intHexadecimal_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;
}

おすすめ

転載: blog.csdn.net/apple_52246384/article/details/110789220