C ++
 Computer >> コンピューター >  >> プログラミング >> C ++

C ++では、任意の基数から10進数に、またはその逆に変換します


このチュートリアルでは、任意の基数から小数に、またはその逆に変換するプログラムについて説明します。

このために、整数とその底が提供されます。私たちの仕事は、数値をそれに相当する10進数に変換することです。さらに、この手順の逆も実行します。

#include <stdio.h>
#include <string.h>
//returning values of a character
int val(char c) {
   if (c >= '0' && c <= '9')
      return (int)c - '0';
   else
      return (int)c - 'A' + 10;
}
//converting number to decimal equivalent
int convert_decimal(char *str, int base) {
   int len = strlen(str);
   int power = 1;
   int num = 0;
   int i;
   for (i = len - 1; i >= 0; i--) {
      if (val(str[i]) >= base) {
         printf("Invalid Number");
         return -1;
      }
      num += val(str[i]) * power;
      power = power * base;
   }
   return num;
}
int main() {
   char str[] = "11A";
   int base = 16;
   printf("Decimal equivalent of %s in base %d is " " %d\n", str, base, convert_decimal(str, base));
   return 0;
}

Ouptut

Decimal equivalent of 11A in base 16 is 282

次に、操作の逆を実行します。

#include <stdio.h>
#include <string.h>
//returning values of a character
char reVal(int num) {
   if (num <= 0 && num >= 9)
      return (char)(num + '0');
   else
      return (char)(num - 10 + 'A');
}
//reversing a given string
void reverse_string(char *str) {
   int len = strlen(str);
   int i;
   for (i = 0; i < len/2; i++) {
      char temp = str[i];
      str[i] = str[len-i-1];
      str[len-i-1] = temp;
   }
}
//converting to equivalent number with base 'b'
char* convert_base(char res[], int base, int inputNum) {
   int index = 0;
   while (inputNum > 0) {
      res[index++] = reVal(inputNum % base);
      inputNum /= base;
   }
   res[index] = '\0';
   //reversing the result
   reverse_string(res);
   return res;
}
int main() {
   int inputNum = 282, base = 16;
   char res[100];
   printf("Equivalent of %d in base %d is "" %s\n", inputNum, base, convert_base(res, base, inputNum));
   return 0;
}

出力

Equivalent of 282 in base 16 is 11A

  1. 電話からラップトップに、またはその逆にビデオを転送する

    スマートフォンをリセットしたいのですが、動画が失われるのではないかと心配しています。 AndroidからPCにビデオを転送するための最良の方法は何ですか バックアップ用ですか? ええと、誰もが自分のデータを大切にしていて、あなたが長い間大切にしてきたビデオを失うのは辛い経験です。また、イベントが発生すると、多くの理由により、ビデオを電話からラップトップに、またはその逆に転送する必要が生じる場合があります。おそらく、電話のメモリが不足しているか、電話をリセットしたいためです。 ノートパソコンから携帯電話にビデオを転送する方法がいくつかあることも十分です。 とその逆が利用可能です。サードパー

  2. GoogleドキュメントをMicrosoftWord(およびその逆)に変換する方法

    Googleドキュメントは、ドキュメントに簡単にアクセス、共有、署名したい人に常に人気がありますが、DOCXなどの実証済みの形式のドキュメントが必要になる場合があります。ドキュメントをGoogleドキュメントに保存していて、オフラインコピーをダウンロードしたい場合は、GoogleドキュメントをMicrosoftWord形式に簡単に変換できます。 また、MicrosoftのDOCXドキュメントをドキュメント形式に変換して開くという逆の方法も紹介します。 注 :ドキュメントをGoogleドキュメントからWordに変換することはできますが、変換中にドキュメントの書式が保持される保証はありません。