第35講 10進数をn進数に翻訳する△ 
第6話 n進数翻訳ソフトをさらに改良して、n進数を10進数にも翻訳できるようにする

Form1例
入門
コード例
#pragma once
#include <math.h>
namespace 10進数をn進数に翻訳する {
      ・
      ・
      ・
#pragma endregion
  private: System::Void button1_Click(System::Object^ sender, System::EventArgs^ e) {
           int a,n;
           a=int::Parse(textBox1->Text);
           n=int::Parse(textBox2->Text);
           textBox3->Text=f(a,n);
           int b,m;
           b=int::Parse(textBox4->Text);
           m=int::Parse(textBox5->Text);
           textBox6->Text=g(b,m);
        }

        String^ f(int a,int n){
           int r;
           String^ w=L"";
           r=a%n;
           String^ v;
           r=a%n;
           if(r==10)v=L"A";
           if(r==11)v=L"B";
           if(r==12)v=L"C";
           if(r==13)v=L"D";
           if(r==14)v=L"E";
           if(r==15)v=L"F";
           if(r==16)v=L"G";
           if(r==17)v=L"H";
           if(r==18)v=L"I";
           if(r==19)v=L"J";
           if(r==20)v=L"K";
           if(r==21)v=L"L";
           if(r==22)v=L"M";
           if(r==23)v=L"N";
           if(r==24)v=L"O";
           if(r==25)v=L"P";
           if(r==26)v=L"Q";
           if(r==27)v=L"R";
           if(r==28)v=L"S";
           if(r==29)v=L"T";
           if(r==30)v=L"U";
           if(r==31)v=L"W";
           if(r==32)v=L"V";
           if(r==33)v=L"X";
           if(r==34)v=L"Y";
           if(r==35)v=L"Z";
           if(r<10)v=r.ToString();
           a=a/n;
           if(a>0){
             w+=f(a,n);
           }
           else{
             return(v);
           }
           return(w+=v);
        }
        String^ g(int a,int n){
           int k,i,w=0;
           k=(int)log10((double)a);
           for(i=k;i>-1;i--){
             if(i==k)w+=((int)(a/pow((double)10,(double)i)))*((int)pow((double)n,(double)i));
             if(i<k)w+=(((a%((int)pow((double)10,(double)(i+1))))/((int)pow((double)10,(double)i)))*((int)pow((double)n,(double)i)));
           }
           return(w.ToString());
        }
};
}
実行例
C++
皆さんいろいろ実験して、逆翻訳がうまくいっていることを確認しましょう。
解説は次話で。


第5話へ 第7話へ


戻る

VC++講義第1部へ
vb講義へ
VB講義基礎へ
初心者のための世界で一番わかりやすいVisual C++入門基礎講座
初心者のための世界で一番わかりやすいVisual Basic入門基礎講座
初心者のための世界で一番わかりやすいVBA入門講義(基礎から応用まで)