問題タブ [struct.pack]
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++ - c++で同等のpythonstruct.pack
Pythonに存在するのと同じようstruct.pack
に、C++にある数値からの固定長の文字列が必要です。私は考えましたがitoa (i,buffer,2)
、問題はその長さがプラットフォームに依存することです。プラットフォームから独立させる方法はありますか?
python - python struct pack double
Pythonでネットワーク送信するために-123.456をCdoubleに変換したいと思います。だから私はこれを試しました:
結果としてこれが得られます:
明らかにそこにはいくつかのヘクスがありますが、そこにw、/、および^が散りばめられているのは何ですか?
python - Python で Minecraft サーバーにログイン パケットを送信できない
私はPythonで次のスクリプトを持っています。まず「ハンドシェイク」を送信し、次にログイン要求を送信して、MineCraft サーバーに接続しようとします。プロトコル仕様はここにあります: http://wiki.vg/Protocol
とにかく、python スクリプトは正常に動作し、エラーはありません。ただし、送信時にサーバーコンソールに何も表示されないため、2番目のパケットを間違ってエンコードしました。プレーヤーが接続されていません。「クライアント」が時間内にログインしないため、最終的にタイムアウトして接続を閉じます。
基本的に、とにかく struct.pack() の経験がある人はここで私を助けることができるはずです. すべてを正しくエンコードしたかどうかわからない行にコメントしました。データのパッキングに関する詳細情報は、上記のリンクに示されています。
どんな助けでも大歓迎です。私はデータのエンコード/パッキングについてはまったく無知です。:(
python - Python -0.000000e+00構造体パックが間違った値を返す
こんにちは私はLinuxで-0.000000e+00の解析に問題があります(Windowsでは動作しています)。
Linuxのstruct.packで、-0.000000e+00を0.000000e+00に変更します。パック前の値を出力した場合、struct.packの結果は0.000000e+00のようになります。
この問題を解決するための解決策はありますか?
私は負の数を追加する必要があると思います魔女は0に最も近いです。それを行う方法は?
結果の編集
struct.pack( "d", -0.000000e+00 )
'\x00 \ x00 \ x00 \ x00 \ x00 \ x00 \ x00 \ x80'
struct.pack( "!d", -0.000000e+00 )
結果'\x00 \ x00 \ x00 \ x00 \ x00 \ x00 \ x00 \ x00'
struct.pack( "<d", -0.000000e+00 )
結果'\x00 \ x00 \ x00 \ x00 \ x00 \ x00 \ x00 \ x00'
struct.pack( ">d", -0.000000e+00 )
結果'\x00 \ x00 \ x00 \ x00 \ x00 \ x00 \ x00\x00'「<d」と「>d」を使用したい。
EDITエラーではありません。
python - python:「L」形式のコードの範囲外の整数
Pythonでは、コードは次のとおりです
ラインで
このエラーが発生しました:
H(unsigned short)でパックしようとしているので、これは奇妙です。
手がかりはありますか?
私のPythonバージョン2.7.3。CPUアーキは32ビットです。
python - 2 進数の先頭を 0 でパックアウトする
インターフェイスが送信したデータを読み取る方法に問題があります。
私がやりたいことは、現在の時刻をインターフェイスに送信することです。ただし、インターフェイスは2の賛辞を使用するため、これを行うと:
インターフェイスは、この 1010010111111000011111000010111 のような 2 進数を受け取ります。2 の補数を使用しているため、時刻が完全に間違っています。負の数を取得し、1942 年と考えているようです。
私の質問は、時間を 2 進数に変換し、2 進数の先頭を 0 でパックして 8 バイトの長さにする方法です。それで、パックしてインターフェイスに送信できます。