問題タブ [bitconverter]

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 投票する
2 に答える
144 参照

c# - C# - 異なる型のバイト表現は異なりますか?

質問が少し奇妙であることは知っています。関連する情報が見つからなかったので、純粋な好奇心から尋ねています。また、お気軽にタイトルを編集してください。ひどいことは承知していますが、これ以上改善することはできませんでした。

short または ushort の object 型の変数 foo があるとします。ネットワーク経由で送信する必要があるため、BitConverter を使用してバイト [] に変換します。

ネットワーク/ソケット マジックが発生しました。変数を元に戻したいです。取得する予定の型がわかっているので、BitConverter.GetUInt16 または GetInt16 を適切に呼び出します。

さて、問題は、変数をどのようにシリアル化したかが実際に問題になるかどうかです。つまり、ビットは同じなので意味がないはずですよね?できるように

そして、する

誰?

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

c - Cで16進数を文字列に変換しますか?

こんにちは、digi dynamic c を使用しています。これを文字列に変換しようとしています

現在、printfステートメントを実行するときは、次のようにする必要があります。

しかし、これを文字列にしたいので、このprintfようなステートメントを使用できます

私は本質的に、文字列として持つ必要がある TCP/IP ポートを介して readreg 配列を送信しています。それを文字列に変換できないようです。ご協力いただきありがとうございます。また、配列全体ではなく各要素を一度に行う方法を誰かが教えてくれれば、要素は4つしかないので問題ありません。

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

c - sprintf が期待値を与えない

16 進数で埋められる配列 (readingreg[4]) があります。私の目標は、データ型を文字列に変換することです。いくつかの提案を読みましたが、sprintf が適しているようです。

これは私が試したものです:

ここに私の出力があります:

この時点で、私は sprintf が何をしてくれたかについてかなり混乱しています。私の予想される出力は、server0 - server4 がすべて文字列値を保持することです。なぜこれが起こっているのか、何か考えはありますか?

以下は、プログラムの簡略化されたバージョンです。

完全なプログラムは 1000 行を超えるコードなので、コンパイルして実行するには、私が提供したもので十分なはずです。

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

c# - c#でBitConverterクラスを使用してバイト配列を16進数値に変換しますか?

Bitconverterクラスを使用して abyte arrayhexadecimal値に変換しようとしています。

上記のコードを 1 行ずつ実行すると、次のように表示されます

ここに画像の説明を入力

hexResult文字列はhexValue (つまり 780B13436587h)と同じになると思っていましたが、得られるものは異なります。

ありがとう!

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

c# - BitConverter.IsLittleEndian = false の場合のバイト オーダー

可能な限り最小のバイト数を使用して、数値をバイトと同等の形式で格納しています。65535 から 16777215 の範囲で、BitConverter は 4 バイトの配列を提供しますが、3 バイトだけを格納したいと考えています。

以下のコードでは、私の配列は [0]254、[1]255、[2]255、[3]0 なので、バイト [3] を切り取ることができます。これは Core i7 proc 上にあります。私の製品コードでは、配列をコピーする前に、BitConverter.IsLittleEndian をチェックして、最後のバイトを切り刻むことができるかどうかを判断しています。

私の質問は、システムのエンディアン性に気を配る必要がありますか、それとも CLR は関係なくこのリトルエンディアン形式を使用するだけですか? バイト配列が逆の順序で出力されるかどうかをテストするための BigEndian システムはありません (取得方法もわかりません)。

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

c# - BitConverter に相当する C++

ファイルの PE ヘッダーを読み取って情報を取得しようとしています。.NETとについては、ファイルを読み取った後に取得した Byte 配列を同等の整数に変換するためにC#使用しています。BitConverterで同じことをしたいのC++ですが、最善のアプローチがわかりません。を同等のものunsigned char arrayとして使用しています。Byte array

コードを以下に示します。

O/P を使用して、PE ヘッダーに情報を問い合わせます。ここで BitCONverter に相当するものが必要です。うまくいけばうまくいくでしょう。

更新:返信ありがとうございます。示唆されているように、キャストを使用して を に変換character arrayInt、 を読み取ろPE Headerていますが、アクセス違反の未処理の例外が発生しています。これは完全なコードです。ファイルは有効で、読み取られています。デバッグを試し、最適化を無効にしましたが、役に立ちませんでした。

親切なアドバイス。

どうもありがとう。

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

c# - 浮動小数点への変換

私は2つのushort整数を持っています。整数: 2206,41247

この整数を float に変換したい。このため;

Linqpadで何かをコーディングしました。この関数の結果は9,547158E-34です

しかし、Modbus Pollプログラムでは、この整数を0に変換します。

Modbus プロトコルを使用してリモート デバイスからこの整数を読み取ります。正しい値は0です

私の質問; Modbus Poll プログラムはどのようにこの整数を float に変換しますか? どのようにして値をゼロにすることができますか?

何か案が ?

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

c# - 浮動小数点数を 10 進数に変換するための C# のオーバーフロー例外

Convert.ToDecimal(float number here)が呼び出されると、オーバーフロー例外が発生します。バイト文字列から読み取り、バイト配列を 10 進数に変換したいと考えています。

フロートが変換に対して大きすぎる/小さすぎる/無限大であるかどうかをチェックするために制約を設定しても、コードは依然としてキャッチ例外で終了します...