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

C++の最初と最後の3ビット


この問題では、数値Nが与えられます。私たちのタスクは、指定された整数値Nの最初の3ビットと最後の3ビットの10進変換を見つけることです。 。

問題を理解するために例を見てみましょう

Input : 57
Output : 71

ソリューションアプローチ

簡単な解決策は、数値nを同等の2進数に変更してから、ビットを配列に保存することです。この後、配列の最初の3つと最後の3つの値を個別に数値に変換します。両方のビットセットの10進変換が結果です。

たとえば、80という数字を考えてみましょう。

80のバイナリ変換は1010000です。

最初の3ビット(101)の10進変換は5です。

最後の3ビット(000)に相当する10進数は0です。

したがって、出力は50です。

ソリューションの動作を説明するプログラム

#include <bits/stdc++.h>
using namespace std;
void convtbnTodcml(int n)
{
   int arr[64] = { 0 };
   int x = 0, index;
   for (index = 0; n > 0; index++) {
      arr[index] = n % 2;
      n /= 2;
   }
   x = (index < 3) ? 3 : index;
   int d = 0, p = 0;
   for (int index = x - 3; index < x; index++)
      d += arr[index] * pow(2, p++);
   cout << d << " ";
   d = 0;
   p = 0;
   for (int index = 0; index < 3; index++)
      d += arr[index] * pow(2, p++);
   cout << d;
}
int main()
{
   int n = 57;
   cout<<"Decimal conversion of first and last bits of the number "<<n<<" is ";
   convtbnTodcml(n);
   return 0;
}

出力

Decimal conversion of first and last bits of the number 57 is 7 1

  1. C++でキロバイトをバイトとビットに変換するプログラム

    入力をキロバイトとして指定すると、タスクは指定された入力をバイト数とビット数に変換することです。 ビット −コンピューターでは、ビットは2つの整数値0と1で表される最小単位であり、コンピューター内のすべての情報はこれら2桁のシーケンスとして処理されます。 Nビット=2^ Nパターン。ここで、Nは1から始まる任意の整数値です。 バイト −コンピュータでは、バイトは8ビットで表されます。バイトは、0〜255の範囲の数値に対して1文字を保持できます。 1バイト=8ビット これは、256に等しい2^8パターンを意味します バイトには複数の形式があります − 1キロバイト(KB)=102

  2. Excelで名前と名前を区切る方法

    あなたが人々のフルネームのリストを持っている状況を想定しましょう。これらの名前を、名、ミドルネーム、および姓の3つの部分に分割する予定です。これは、 Microsoft Excelで実行できます。 区切り文字を使用する またはセパレータ 働き。名前を分割する別の方法は、式を使用することです。 。 Excelで名前と名前を分ける Excelで名前と名前を分ける主な必要性は、従業員または学生のグループを分類し、名前または名前に従って分類することです。これは2つの方法で行うことができます: 区切り文字または区切り関数を使用して、Excelでフルネームを姓名に分割します 数式を使​​用して、Exc