問題タブ [uint32-t]
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.
c++ - Struct または Union での ntohl の使用
ntohl
かかりますuint32_t
。uint32_t
多くの異なるメンバー (タイプまたは)を持つメッセージがありますuint16_t
。struct
受け取ったor全体を適切に渡し、それを say に変換してから my or に変換することはunion
可能ですか?uint32_t
reinterpret_cast
union
struct
私が行ってきた方法は、union
orの個々のメンバーを行ごとにリストし、struct
このように ntohl/s に渡すことmsg.member = ntohl(msg.member);
ですが、それは面倒です!
データ構造全体が C# .NET アプリケーション (Windows) から Linux アプリケーションに転送されます。
やってみたところ、
コンパイラは次のように不平を言います。
エラー: 'void*' から 'uint32_t' へのキャストで精度が失われます
crypto++ - Crypto++ は Adler32 ダイジェスト (バイト配列) を uint32_t に変換します
次の問題があります: を使用してデータ ブロックの adler32 チェックサムを計算しようとしていますCrypto++
が、byte[4] 配列出力を uint32_t に変換した後、間違ったチェックサムが得られます。
crc32 を使用したこの関数は問題なく動作します。
しかし、adler32 を計算する関数は無効な値を返します。
誰かが私にヒントをくれることを願っています。
グリーツ・ファビアン
c - uint32_tをネットワークバイトオーダーに変換する
私は勉強のために何かをしているので、ええ、それは宿題です。
最初に:動作するJavaサーバーアプリケーションを入手しました。また、cで書いているこのクライアントアプリケーションもJavaで動作しています。単純なままですが、uint32_tをJavaサーバーに送信できません。
それでは、いくつかのコードを披露しましょう。
そのまま簡単に、この関数をfunc ='v'、str = "hallo"、anz = 2で呼び出します。これにより、27バイトのpackageLengthが得られます。
パッケージは次のようにビルドされます。
=packageLength(int)は4バイト
+関数記述子の長さ(funcLength)は4バイト
+ func記述子(func)はfuncLength
+ param1の長さ(strLength)は4バイト
+長さstrLengthであるparam1(str)の値+4
バイトであるparam2の長さ+1バイト
であるparam2(anz)の値の長さ
+ 1バイトであるNULLバイト(\ 0)
私が行った変換が間違っていると思います。おそらく間違ったデータ型を使用しています。サーバー側では、JavaByteBufferを使用してデータを収集します。最初に、ネットワークから4バイトのパッケージ長を読み取ります。これにより、データパッケージ全体を取得するまでに読み取る必要がある時間の情報が得られます。
最後のprintlnは、次の出力を提供します。
packageLength875901497
それで、私の問題がどこにあるのか、誰かいますか?必要に応じてさらにコードを提供できますが、エラーはデータ型(uint32_t)または変換のいずれかであると思います。
ヘルプが適用されます。前もって感謝します。
乾杯ダニエル
c - qsortを使用して符号なし整数をソートする
私が取り組んでいるプログラムは、ファイルを取得して1行ずつ解析し、各行をuint32_tに変更して、配列に追加します。そこから、qsort()を使用して配列をソートすることになっています。プログラムを自分の考えどおりに作成しましたが、コードをテストすると、すべての新しいuint32_tsが同じ値であると表示されます。これは、文字列をuint32_tに変更したときの間違いによるものですか?strtoulを使用する方が良いでしょうか?最後の質問ですが、私のqsortの実装は正しいですか?(コンパイルされ、ソートされたと表示されますが、uint_32への変換が明らかに正しくないため、わかりません。とにかく、コードは次のとおりです。
c - uint32_t 使用時のオーバーフロー
出力は「ポート: -120」です。若干のオーバーフローがあるようです。しかし、uint32_t は 5000 に対して十分な大きさである必要があります。5000 の代わりに 22 を使用すると、すべて問題ありません。
なんで?
c++ - 'uint32_t'はタイプに名前を付けません
2007年に作成されたC++ソフトウェアパッケージをコンパイルしようとすると、次のエラーが発生します。
error: ‘uint32_t’ does not name a type
これは、g++4.5.2を使用する64ビットUbuntuで発生しています。g++4.1.2を使用して64ビットCentOSで正常にコンパイルされます。
#include
欠落しているまたはコンパイラフラグはありますか?または、またはtypedef
に割り当てるuint32_t
ために使用する必要がsize_t
ありunsigned int
ますか?
c - uint32 / 16_tから文字列を作成してから、元の数値を解析して戻します
私はchar*にいくつかのuint32_tとuint16_tの数字を入れる必要があります。次に、それらをバッファから戻す必要があります。
私はいくつかの質問を読み、sprintfを使用してそれらをchar *に入れようとしましたが、sscanfは元の数値を再び取得します。しかし、私はそれらを正しく取得することができません。
これは、2つの数字しかない私のコードの例です。しかし、2つ以上必要なので、reallocを使用します。また、uint16_tでsprintfとsscanfを正しく使用する方法がわかりません
そして私が得るものは
私が取得する必要があるのは
私はCが初めてなので、助けていただければ幸いです。
c - C型宣言intN_t
ヘッダーstdint.hは、すべてのマシンでu32を32ビットとしてどのように定義しますか?誰かがこれを実現するためにstdint.hが行うプロセスについて詳しく説明できますか?自分のマシン(Windows 7)のstdint.hファイルはどこにありますか?
arduino - uint32_tとunsignedcharsの間で変換するArduino
私はrainbowduinoを使用していますが、個々のrgb値を符号なし文字として受け取るメソッドと、24ビットのrgbカラーコードを受け取るメソッドがあります。
rgb値をタイプuint32_tのこの24ビットカラーコードに変換したい(すべてのコードがrgb値のみを使用する必要があるようにするため)。
何か案は?
私はすでにuint32_tを試しました。result=r<< 16 + g << 8 + b; r = 100 g = 200 b = 0は緑を与えましたが、r = 0 g = 200 b=0は何も与えませんでした