問題タブ [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.
.net - Objective-C: .NET の BitConverter クラスからデータを読み取る方法
.NET Web アプリケーションでは、BitConverter クラスを使用して、次のように Int32 をバイト配列に変換しています。
今、私はこれを iPhone アプリに読み込もうとしています。長さ 4 の NSData にバイトがありますが、デバッガー コンソールで nsdata の内容を表示する方法がわからないため、続行する方法がわかりません。
これらの 4 バイトを object-c int に変換するにはどうすればよいですか?
編集:
ここに私が思いついたものがありますが、それは正しい軌道に乗っているかもしれないし、そうでないかもしれません. NSData のインデックスで 1 バイト値を取得する方法がわかりません。
c# - C# でポインターをループ オプションに変換する
これをループに変換し、ポインターを使用しないようにするにはどうすればよいですか。
このページのコードを使用しようとしています:クエリ文字列パラメーターの難読化
c# - Int32 を 24 ビット符号付き整数に変換する
Int32 値を 3 バイト (24 ビット) の整数に変換する必要があります。エンディアンはそのまま(少し)ですが、符号を適切に移動する方法がわかりません。値は既に適切な範囲に制限されています。4 バイトを 3 に変換する方法がわかりません。C# 4.0 を使用します。これはハードウェアの統合のためなので、24 ビットの値が必要で、32 ビットは使用できません。
c# - BitConverter を使用した C# での高速キャストは、もっと高速にできますか?
私たちのアプリケーションでは、非常に大きなバイト配列があり、これらのバイトを異なる型に変換する必要があります。現在、BitConverter.ToXXXX()
この目的で使用しています。私たちのヘビーヒッターは、ToInt16
とToUInt64
.
の場合UInt64
、問題は、データ ストリームが実際には大きな整数を表す 6 バイトのデータを持っていることです。6 バイトのデータを に変換するネイティブ関数がないため、次のUInt64
ようにします。
の使用ToInt16
はより簡単で、ビット操作を行う必要はありません。
私たちはこれら 2 つの操作を非常に多く行っているため、SO コミュニティにこれらの変換を行うためのより高速な方法があるかどうかを尋ねたいと思いました。現在、全 CPU サイクルの約 20% がこれら 2 つの関数によって消費されています。
c# - 生のバイトデータをfloat[]に変換する
に変換するためのこのコードがありbyte[]
ますfloat[]
。
問題は、私は通常NaN
結果を得るということです!なぜこれが必要ですか?にデータがあるかどうかを確認しましたがbyte[]
、データは問題ないようです。それが役立つ場合、値の例は次のとおりです。
ただし、NaN
floatに変換すると、これは(数値ではなく)戻ります。何が問題なのですか?byte[]
に変換する他のより良い方法はありfloat[]
ますか?バッファに読み込まれた値は、他のプログラム(.wavファイルの増幅を実行する)と比較したので正しいと確信しています。
c# - 異なるエンディアン アーキテクチャの BitConvert.IsLittleEndianon
BitConverter.IsLittleEndian のドキュメントには次のように書かれています。
このコンピューター アーキテクチャでデータが格納されるバイト オーダー (「エンディアン」) を示します。
「これ」は私を混乱させます。次のコードがあるとします。
ここで、リトル エンディアン マシンでプログラムをコンパイルするとします。実行可能ファイルをビッグ エンディアンのマシンにコピー ペーストすると、false と表示されますか? または本当ですか?基本的に、フィールドが動的なものであるかどうか、および JIT がそれと関係があるかどうかを知りたいです。
c# - BitConverter VS ToString for Hex
次の 2 行のコードが「異なる」結果を返す理由を誰かが説明できるかどうか疑問に思っていますか? 逆の値の原因は何ですか? これはエンディアンと関係がありますか?
vb.net - c++文字列をバイトに変換してtcpで送信する
28文字の文字列をリモートIPアドレスとポートに送信しようとしています。次のコードスニペットを使用して、vb.netでこれを正常に実行しました。
これをc++に変換する必要があり、これまでのところ次のようになっています。
しかし、この時点で立ち往生しています。単純な構文エラーがないことは確かですが、理解できません。
明確にするために、エラーは発生していませんが、文字列が正しくバイトに変換されているとは思いません。逆に変換すると、「01」が表示されるだけです。
乾杯、クリス
c# - BitConverter クラスの IsLittleEndian のユースケースは何ですか?
IsLittleEndian
でフィールドを発見したときはとてもうれしかったBitConverter
です。もちろんそこにあるはずで、好きなエンディアンを指定できるはずだと思いました。さて、私の幸せは長くは続きませんでした。フィールドを設定する方法がないことがわかるまで、しばらく時間を費やしました。フィールドはであり、静的コンストラクターでreadonly
のみ設定されます。true
フィールドが実際にコードで使用されているのは面白いです。たとえば、ToInt32
メソッドの実装は次のようになります。
ToInt32
そのため、リトルエンディアンとビッグエンディアンの両方を完全に処理できるようです。
私の質問は、FCL に既に実装されている非常に便利なコードがあるのに、それを使用する方法がないのはなぜですか (もちろん、リフレクションをいじり始めない限り)。一部の開発者が締め切りに間に合わず、仕事を中途半端に放置しただけなのでしょうか? そうだとしても、なぜコードは利用できないのに、フィールドは利用できるのでしょうか? これには正当な理由があることを願っています。
私は自分自身を明確にしたい。ビッグエンディアンの値を処理する方法についての解決策は必要ありません。私には解決策があります。解決策は実際に私の質問に示されています。
c# - C# - double 値を読み取る
ファイルにバイナリ形式で書き込まれた double 値が 1 つだけあるとします。C# または Java を使用してその値を読み取るにはどうすればよいですか?
巨大なバイナリ ファイルから double 値を見つけなければならない場合、それを見つけるためにどのような手法を使用すればよいですか?