問題タブ [uint8t]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票する
0 に答える
274 参照

ios - Objective-C IOSByteArray を C uint8_t ポインタに、またはその逆に「変換」する方法

問題:

バイナリ データの格納/操作にIOSByteArrayクラスを使用する Objective-C コードがあります。

これらのデータは C 関数で処理する必要があります。

int 関数 (const uint8_t * 入力、size_t 入力長、uint8_t * 出力、size_t 出力長)

inputDataを関数に正しく渡し、 IOSByteArray outputDataで出力を取得する方法は?

0 投票する
2 に答える
612 参照

c++ - uint8 ベクトルの要素を stringstream にキャストする

uint8 ベクトルを stringstream に変換する方法がわかりません。

uint8 のベクトルを取得する入力では、最初の 9 バイトは文字列ストリームで必要のないフラグです。次の 2 バイトは文字列として必要なデータです。それらを「name1」と呼びましょう。次の 2 バイトは別の名前です。 「name2」の場合、uint32 の数値である 4 バイトが続きます (ただし、4 つの uint8 バイトとして記述されます)。これを単に「数値」と呼びましょう。これらのデータを stringstream に渡す必要がありますが、

  • name1 と number2 はバイトとして書き込む必要があります (バイト 0x52 -> char[2]={"5","2"})
  • 数値は uint32 にキャストする必要があります
  • 最終的な文字列ストリームでは、すべての変数をセミコロンで区切る必要があります

したがって、次のようなベクトルを取得した場合:

---いくつかの 9 バイト---, 0x05, 0x00, 0x01,0x00,0x00,0x00,0x08,0x0E, ---その他のデータ---

私は次のようにstringstreamが必要です:

"0500;0100;2062;"

私はuint32に数値をキャストする方法を理解することができました:

これを行うためのより良い方法はありますか?

編集:

uint8 値を文字列に文字として渡すにはどうすればよいですか?

例:

バイト出力: 0x05

文字列出力: 05

「<<」演算子を使用して文字列を文字列ストリームに入れることはできますか?それとも推奨されませんか?

0 投票する
1 に答える
2317 参照

c++ - stringstream >> 16 進数の uint8_t? c++

次のコードの出力に混乱しています:

上記の出力は次のとおりです。

52 74

4J

34 4a

4

変更するときは、最初の行を次のように置き換えます。

出力は次のようになります。

74 74

74 74

4a 4a

J

何が起こるかは理解していると思いますが、なぜそれが起こるのか、またはそれを防ぐ/回避する方法がわかりません。私の理解では、std::hex修飾子は のタイプのために何らかの形で損なわxれています。技術的なレベルでは正確ではないかもしれませんが、読み取った最初の文字を単に書き込むだけです。

背景: 入力は 16 進数の文字列であると想定されており、各ペアはバイトを表します (文字列以外のビットマップと同様)。各バイトを読み取って保存できるようにしたいuint8_tので、この問題に遭遇したときにそれを試していました。何が最善の方法なのかまだ判断できないので、もし私が行っていることが非効率的または不必要だと思われる場合は、その理由を教えていただければ幸いです。読んでくれてありがとう、

0 投票する
3 に答える
97 参照

arrays - 文字列を UTF 8 に変換する

現在、文字列配列を取得していますが、これを UInt8 配列に変換したいですか? すべての文字列は UInt8 のものですが、文字列としてしか取得できません。何か案は?

配列内の各項目を個々の部分に分割していますが、文字列を UInt8 に変換する方法がわかりません。

ありがとう

0 投票する
2 に答える
1970 参照

c - 8ビット値を16ビット値に変換するC

2 つの 1 バイト値を含む配列を関数に渡す状況がありますが、どういうわけか、関数は配列の長さが 4 バイトであると認識し、ビット操作が大幅に台無しになります。各配列値を , として明示的にキャストしようとしましたuint8が、役に立ちませんでした。何が起こっているのかについてのアイデアはありますか? Eclipse Mars.1 で cygwin の gcc ツールを使用します。

編集

もう一つ。sizeof(bitArray) は、main() で 2 バイトを生成します。

0 投票する
1 に答える
1990 参照

c - uint16_t uint8_t または size_t?

を使用して、「データサイズ」と「データ」の両方を特定のファイル記述子に送信するために課金される関数を使用したいと思いますwrite()。レコード長が 2 バイトの場合に機能します。ただし、同じ関数を使用して、1 バイトに等しいレコード長も送信したいと考えています。


2 番目のケースでは長さが 1 バイトしかないため、2 バイトの場合に必須であるエンディアン操作を自発的に削除しました。

それは練習するための最良の方法ですか?