拠点と異なる拠点間の変換について

拠点と異なる拠点間の変換について

C ++コードで異なる塩基の変換を実現する方法

例として10進数と8進数の合計変換を取り上げます

再帰的方法

#include <iostream> 
using namespace std;
int sb(int n) 
{
    
    
    if(n<8)return n;
    else 
	return n%8+10*(sb(n/8));//递归思想关于进制转化 
}
int main() 
{
    
    
    int n;
    cin>>n;    //获取10进制数 
    cout<<sb(n)<<endl;   //利用递归函数 

    return 0;
} 

ループ方式

#include<iostream>
using namespace std;
long long sum=0,b=1,x=1;
int a;
int main()
{
    
    
    cin>>a;
    while(a!=0)
    {
    
    
        sum=sum+(a%8)*x;
        a/=8;   //a=a/8
        x*=10;  //x=x/10
    }
    cout<<sum<<endl;
   
    return 0;
} 

10から16進数

1016进制
#include<iostream>using namespace std;
char exchange(int n)
{
    
         switch(n)
{
    
         case 0:    return '0';break;
  case 1:    return '1';break;
case 2:    return '2';break;
          case 3:    return '3';break;
          case 4:    return '4';break;
          case 5:    return '5';break;
case 6:    return '6';break;
case 7:    return '7';break;
           case 8:   return '8';break;
      case 9:  return '9';break;
      case 10: return 'A';break;
case 11:return 'B';break;
      case 12:return 'C';break;
      case 13:return 'D';break;
      case 14: return 'E';break;
      case 15:return 'F';break;}}
int main(){
    
    
int m,note,i=0,s=0;
    cin>>m;
    note=m;
    while(m/16!=0)
    {
    
     i++;  m=m/16;  }
char a[i];
 while(note/16!=0)
    {
    
      a[s]=exchange(note%16);
        s++;
        note=note/16; }
    a[i]=exchange(note);
    for(int j=i;j>=0;j--)
    {
    
    cout<<a[j];
    }cout<<endl; return 0;}

神と悪魔のための異なる基地があります

ベースの生成は、より良い表現または記録のためでなければなりません。

成績数など、私たちの生活の中で特定の数を表現する場合、そのような数はすべて10進数です。10進数の0、1、2、3、4、5、6、7、8、9が10個あります。
誰もが「10進法」を知っています。人生には他にもシステムがあります。たとえば、分と秒の数は60度、角度は360度です。
コンピューターは2つの状態0、1しか表現できないため、コンピューターではバイナリが使用されます(0はスイッチオフのようなもので、1はスイッチオンとして表現できます)。したがって、コンピュータは2進数のみを「認識」できます。バイナリ「2つごとに1つに入る」。
また、8進数と16進数のシステムがあることをご存知かもしれませんが、なぜバイナリシステムと他のシステムがあるのですか?
人間は10進数を使い、コンピューターは2進数を使うと想像できますが、コンピューターの操作をよりよく研究して理解したい場合、2進数の式や説明を使用することは非常に直感的でなく不便です。バイナリは整数(10進数)などの長すぎるため、32ビットマシンのバイナリは32ビットになります。16進数を使用する場合、必要なのは8桁だけなので、式や説明に非常に便利です。また、10進数ほど複雑ではないため、変換時に直接変換することもできます。(8、16は2の3、4乗であるため)

さまざまな基数表現方法と変換操作

BINバイナリOCTオクタルDEC10進数HEX16進数

10進数から2進数は、短い除算を使用します。

2進数から10進数へのビット重み展開方法:

2進数から8進数:3ビットを1ビットに変換

8進数から2進数へ:1ビットを3ビットに変更

2進数から16進数:4ビットから1ビット

16進数から2進数:1ビットから4ビット

栗をあげる基数変換

おすすめ

転載: blog.csdn.net/qq_51808107/article/details/111028166