HEXコードをDIN ZK-Codeに変換します。計算は以下の図のとおりです。 16進コードは2進コードに変換されます。その後、それはバイトごとに反転され、半バイトごとにDECに変換されます。 ここに問題があります。私がこれに対する解決策を講じたとしても、それは本当に非効率的です。たぶんあなたは私にヒントを与えることができ、見るべき機能があります。16進数をDINコードに変換する
答えて
ステップ1:あなたが"010C2E24DC"
を含む文字列を持っているように、あなたは、std::string
にすべての文字を読むことができるコードで
をお読みください。これを複数のstd::string
に分割して、それぞれstd::string
のインターフェイスを使用してバイトを表す2文字の文字列にすることができます。
ステップ2:あなたは、コンソールから数値を読み取るためにstd::cin
を使用することができますようにあなたは、数値に文字列を変換するためにstd::stringstream
を使用することができますバイト
に変換します。 std::hex
とoperator<<
を使用して、毎回std::stringstream
を1つの "バイト文字列"で埋めて、operator>>
を使用して符号なしの文字に解析します。
ステップ3:ビット
使用バイナリ演算子の組み合わせシフト(例えばシフト(< <を、>>)、及び(&)、または(|))各符号なしのビットの順序を逆にしますchar。
ステップ4:半バイトにビット反転符号なしの文字を変換するために、二項演算子の組み合わせを使用し、再び半バイト
に分離します。
ステップ5:あなたがテキストに変換し、それらに番号をストリーミングstd::stringstream
(またはstd::cout
に直接出力)を使用することができますバック文字列
に変換します。ゼロパディングを追加するには、std::setw
を調べるとよいでしょう。
私はあなたがこれまでに試みられてきた何ピーター
#include <cassert>
#include <cstring>
#include <sstream>
#include <iomanip>
#include <iostream>
#include <string>
#include <bitset>
std::string hex2din(const char* hex) {
assert(strlen(hex)==10);
std::stringstream oss;
std::stringstream ss;
std::string hexstr = std::string(hex);
int halfbyte;
for (size_t j = 0 ; j < 5 ; j++) {
std::string s = hexstr.substr(2*j,2);
ss << std::hex << "0x" << s;
unsigned short rev, tmp=0;
ss >> rev;
ss.clear();
for(size_t i=0;i<8;i++)
{
tmp |= (((rev & (1<<i))?1:0) << (7-i));
}
rev = tmp;
halfbyte = std::stoi(std::bitset<4>(rev >> 4).to_string(), nullptr, 2);
oss << std::setfill('0') << std::setw(2) << halfbyte;
halfbyte = std::stoi(std::bitset<4>(rev & 15).to_string(), nullptr, 2);
oss << std::setfill('0') << std::setw(2) << halfbyte;
}
return oss.str();
}
int main(int argc, char* argv[]) {
std::string s = hex2din("010C2E24DC");
std::cout << s << std::endl;
return 0;
}
うわー、ありがとう。私は明日それを見るでしょう。たくさんのもの、私はこれから学ぶでしょう。ありがとう、ピーター! – fatman44
- 1. 文字列を16進数で16進数に変換する
- 2. 16進数をasciiに変換する
- 3. Qt:QStringを16進数に変換する
- 4. バイナリを16進数に変換する
- 5. UTF-16 16進コードを絵文字に変換する方法
- 6. 16進数を2進数のiphoneに変換するには
- 7. erlangでバイナリ値を16進数に16進数に変換する方法
- 8. 混乱C++で16進数を2進数に変換する
- 9. スウィフトで16進数を10進数に変換する
- 10. 16進数を10進数に変換するR
- 11. 文字列を16進数と16進数に変換する方法は?
- 12. キャストを使用して16進数から16進数に変換する
- 13. 16進数の文字列を16進数のデータに変換する
- 14. ビットボード:16進数から16進数への変換
- 15. NSStringを16進数に変換してUILabelに変換する
- 16. 10進数から16進数に変換するC++プログラム
- 17. 文字列を16進数に変換する16 pythonで3
- 18. c#:16進数をGUIDに変換
- 19. 10進整数を16進数に変換できますか?
- 20. 16進数を10進数に正しく変換します
- 21. 16進文字列を10進数に変換する
- 22. EZGPIB:16進文字列を16進数に変換する(Delphi Scripted Pascal)
- 23. Java - TI-84トークンを16進コードに変換する
- 24. Pythonで長い16進文字列を16進数に変換します
- 25. このコードに基づいて16進数をASCIIに変換するには?
- 26. 16進数から10進数に変換
- 27. 浮動小数点値を16進数に変換する
- 28. 整数を16進数に変換する
- 29. xqueryで16進数をasciiに変換する関数
- 30. 小数点を16進数に変換するR
によって提案されたものの線に沿って何かをしますか?あなたは何が間違っている私たちを示すことができますか? –
私は何もあなたを見ることができません。それはちょうど悪かったので。 – fatman44
私はchar配列を読み込み、それをソートしようとしました。しかし、私もキャストエラーやものを取得します。私はちょうどその問題を持っていないと思っています。 – fatman44