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

C++で16進数を数える


開始と終了の範囲が与えられ、タスクは、指定された範囲に存在する16進数またはアルファベットの数を計算することです。

16進アルファベットとは何ですか?

コンピューター用語では、16進数は、16を底とする数値です。これは、2進数を16ビットで表すことができることを意味します。 0から15までの整数で構成されます。ここで、10はA、11はB、12はC、13はD、14はE、15はFとして表されます。

したがって、以下のプログラムでは、範囲が16進アルファベットで構成されているかどうかを確認することがタスクです。

Input − start = 10, End = 13
Output − 4

説明 − 10から13までの4つの16進数があります。つまり、10はA、11はB、12はC、13はDです。

Input − start = 15, End = 16
Output − 1

説明 − 16進アルファベットは1つだけです。つまり、Fとして15、16はそれぞれ10として表されます。

以下のプログラムで使用されているアプローチは次のとおりです

  • 変数から始まる範囲を入力します。たとえば、開始と終了です。

  • 変数カウントを宣言してカウントを格納し、0で初期化します

  • ループを開始し、iを開始して、iが終了以下になるまで

  • ループ内で、iが10以上であり、iも15以上であるかどうかを確認してから、カウントを1増やします

  • それ以外の場合は、iが15より大きいかどうかを確認します

  • 次に、iの値で一時変数tempを設定し、kが0に等しくないときにトラバースします

  • そして、k%16が10以上かどうかを確認します

  • カウントを1増やします

  • そして、temp/16で温度を設定します

  • countの値を返します

  • 結果を印刷します。

#include <iostream>
using namespace std;
// Function to count the
// total number hexadecimal alphabet
int counthexa(int start, int end){
   int result = 0;
   for (int i = start; i <= end; i++){
      // All hexadecimal alphabets
      // from 10 to 15
      if (i >= 10 && i <= 15){
         result++;
      }
      // If i > 15 then perform mod by 16 repeatedly
      // till the number is > 0
      // If number % 16 > 10 then increase count
      else if (i > 15){
         int k = i;
         while (k != 0){
            if (k % 16 >= 10){
               result++;
            }
            k = k / 16;
         }
      }
   }
   return result;
}
// Main Function
int main(){
   int start = 10, end = 60;
   cout << "count is: "<<counthexa(start, end);
   return 0;
}

出力

上記のコードを実行すると、次の出力が生成されます-

count is: 21

  1. C++で長方形の正方形の数を数える

    =Bとなるように、長さL、幅Bの長方形が与えられます。目標は、サイズLXBの長方形が収容できる正方形の数を見つけることです。 上の図は、サイズ3 X 2の長方形を示しています。2、2X2の正方形、6,1X1の正方形があります。 総正方形=6+ 2=8。 サイズLXBのすべての長方形には、1X1の正方形のL*B数があります。 最大の正方形のサイズはBXBです。 L =B =1の場合、正方形=1。 L =B =2の場合、正方形=1 + 4 =5(2X2の1、1X1の4) L =B =3の場合、正方形=1 + 4 + 9 =14(3X3の​​1、2X2の4、1

  2. 16進数から10進数のC++プログラム

    16進数を入力として指定すると、タスクは指定された16進数を10進数に変換することです。 コンピューターの16進数は16を底とし、10進数は10を底とし、0〜9の値で表されますが、16進数は0〜15から始まる数字で、10はA、11はB、12はC、 Dとして13、Eとして14、Fとして15。 16進数を10進数に変換するには、次の手順に従います- 余りから右から左に数字を抽出し、それを0から始まる累乗で乗算し、(桁数)–1まで1ずつ増やします。 16進数から2進数に変換する必要があるため、8進数の基数は16であるため、累乗の基数は16になります。 指定された入力の桁にベースとパワーを掛け