No.1ベストアンサー
- 回答日時:
C++で書くと、これで解読できると思います。
#include <iostream>
#include <vector>
#include <bitset>
// Parity check equations
bool check_parity(const std::bitset<7>& bits) {
bool p1 = bits ^ bits[3] ^ bits[4] ^ bits[2] ^ bits;
bool p2 = bits ^ bits[1] ^ bits[4] ^ bits[5] ^ bits;
bool p3 = bits[3] ^ bits[1] ^ bits[4];
return (p1 == bits[1]) && (p2 == bits[3]) && (p3 == bits);
}
// Correct error in a 7-bit code
void correct_error(std::bitset<7>& bits) {
int error_bit = 0;
error_bit += bits[1] ? 1 : 0;
error_bit += bits[3] ? 2 : 0;
error_bit += bits ? 4 : 0;
if (error_bit > 0) {
bits.flip(error_bit - 1);
}
}
int main() {
std::vector<std::bitset<7>> codes = {
std::bitset<7>("0101101"),
std::bitset<7>("1110100"),
std::bitset<7>("1001010"),
std::bitset<7>("0101101"),
std::bitset<7>("0000101"),
std::bitset<7>("0101010"),
std::bitset<7>("0000000"),
std::bitset<7>("1010000")
};
std::string message = "";
for (const auto& code : codes) {
if (!check_parity(code)) {
correct_error(code);
}
message += static_cast<char>(code.to_ulong());
}
std::cout << "Decoded message: " << message << std::endl;
return 0;
}
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- 数学 数学I 因数分解について 因数分解の答えが (c-b)(a-b)(a-c)となりましたが、解答では輪 7 2023/04/06 14:38
- 物理学 物理の問題で速さを求めよという問題があります この問題で速さを求めるとマイナスの符号がついて答えが出 3 2022/08/29 20:49
- その他(ホビー) 3アマ試験 2 2023/05/17 05:09
- 物理学 電磁気学での質問です。 電荷のない空間ではポテンシャルの極大点, 極小点が存在しないことを証明せよ. 3 2023/05/12 22:39
- 数学 ハフマン符号化にかんしての問題です。 出現確率が次の通りであるような記号AからFがある。 このとき、 1 2023/01/26 12:16
- 計算機科学 6ビット(符号含む)の二進数 4 2023/04/16 13:22
- 数学 ハフマン符号の符号化についてです。 確率が(A,0.25)( B,0.25)( C,0.2)( D, 1 2022/07/06 13:56
- 計算機科学 ビット計算 2 2023/04/16 14:26
- オーケストラ・合唱 カリブ夢の旅のピアノの音符を降っていただけませんか…? 1 2023/08/11 09:37
- 高校 2進数のオーバフローについて 6 2022/05/12 21:25
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
構文エラーが出ているのですが...
-
enumの値から定義名を文字列化...
-
C++のifstreamの使い方
-
atlbase.h と afxwin.hの同時定義
-
連番ファイルについて
-
VC++で文字列から任意の文字を...
-
MingwでC++のソースがコンパイ...
-
DirectXとカメラ
-
findnext();について
-
string型のフォーマット書式指...
-
mainの外に変数 vs ポインタ渡し
-
C言語 ストリームについて。
-
#include "fstream.h"
-
std::map の const 修飾について
-
なぜ、C++の標準ヘッダをインク...
-
JPEGやPNGが読めるLoadImage関数
-
名前空間でビルドエラー(LNK20...
-
c++ ファイルの列挙ができない(...
-
switch文のエラーについて
-
opencvを使って画像比較
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
VC++で文字列から任意の文字を...
-
構文エラーが出ているのですが...
-
enumの値から定義名を文字列化...
-
switch文のエラーについて
-
空ENTERの判別
-
なぜ、C++の標準ヘッダをインク...
-
【C++】ヘッダ内でstringを格納...
-
C++での <iostream.h>と<iostre...
-
#include "fstream.h"
-
#define中の#のエスケープ
-
JPEGやPNGが読めるLoadImage関数
-
リモートデスクトップの接続元I...
-
string型のフォーマット書式指...
-
CStringとString
-
std::map の const 修飾について
-
VHDLのsignedとunsignedの違いは?
-
このプログラミング誰か教えて...
-
指定した文字を削除したい
-
構造体配列のvectorへの変換と...
-
C言語のポインターで詰まっている
おすすめ情報