問題タブ [unpack]
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.
perl - 変数を逆のバイト順で出力する方法は?
$num
変数を逆のバイト順に変換して出力しようとしています:
印刷できない文字として印刷され、16 進エディターでは正しく表示されますが、コンソールで読み取るにはどうすればよいですか? 私はすでにこれを試しました:
pack
これにより、perl は数値以外の引数について不平を言うので、文字列を返すと思います。0xb7dd1455
に基づいて、コンソールにどのように印刷でき$num
ますか?
ruby - Ruby-バイナリ文字列を通常の文字列に解凍する方法は?
CSVファイルを開き、File.open(filename)を使用してそこから値を読み取ります。
だから私はこのようなことをします:
私が抱えている問題は、line_arrayの値が奇妙な形式になっているように見えることです。たとえば、CSVファイルのセルの値の1つは0.86です。印刷すると「0.86」のようになります
つまり、文字列のように動作しますが、どのようにエンコードされているのかわかりません。私が内省しようとすると:
一体何が起こっているのですか?!比率を通常の文字列に変換して、ratio.to_fを呼び出すにはどうすればよいですか?
ありがとう。
perl - Perl パック/アンパック/シフト
私はここ数日間、Perl でこの問題を抱えていました。数え切れないほどの man ページ、perldocs、およびあまりにも多くの検索用語をグーグル検索した後、ここの誰かが私を助けてくれることを願っています.
Perl の 16 進数 0xFFFF ではなく、16 進数の値、つまり「FFFF」を表す 2 つの文字列が与えられます。これらの文字列のうち 2 つが与えられた場合、それらをバイナリ形式に変換し、2 つのビットごとの AND を実行してから、この出力を取得し、LSB から MSB までの各ビットを調べます。
現在、2 つの問題があります。16 進文字列を 16 進数に変換し、ビットごとの AND の結果をシフトします。
16 進文字列を 16 進数に変換するために、次のアプローチを試しましたが、それらを印刷して調べたときに機能しないようです。
「print」を使用してこれらのそれぞれを調べても、正しい値が表示されず、「sprintf」を使用しても表示されません...
2 番目の問題は、ビットごとの AND を実行した後に発生し、右に 1 シフトして各ビットを調べたいと考えています。前の問題を回避するために、16 進文字列の代わりに実際の Perl 16 進数を使用しました ("ffff" ではなく 0xffff)。 . 次のように右シフトを実行しようとすると:
この時点ですべて問題ないように見えます。「print」を使用すると、AND 演算の値が正しく見えることがわかりますが、次のようにシフトしようとすると、次のようになります。
得られた結果の値はバイナリ形式ですが、正しくありません。
この種の操作を実行する正しい方法は何ですか?
php - PHP の 64 ビット アーキテクチャで 64 ビット int をパック/アンパックする
x64 アーキテクチャで次の出力が得られるのはなぜですか?
符号付き 64 ビット整数を処理できるように見えますが、それらをパック/アンパックすることはできません。ドキュメントhttp://us3.php.net/packによると、I のサイズはマシンに依存する必要があり、この場合は 64 ビットです。
perl - Perlのunpack関数で正確に「W」は何をしますか?
「W」が何をしているのか正確には理解できませんでした。
プリント:116
静止画:116
php - PHP でバイナリ データの不明なデータ形式を特定する
uint32 とヌルで終了する文字列が混在するバイナリ データがあります。個々のデータ セットのサイズは知っていますが (各データ セットは同じ形式を共有しています)、実際の形式はわかりません。
unpack を使用して、次の関数でデータを読み取りました。
次に、基本的に両方の関数を試して、データが文字列として意味があるかどうかを確認します。そうでない場合は、おそらく int です。これを行う簡単な方法はありますか?
ありがとう。
php - PHP で base64Binary からタイムスタンプを取得する
Web サービスは、タイムスタンプ フィールドを base64Binary 形式で返します。SOAP 応答では次のようになります。
ただし、PHP __soapCall は b64_decode() を実行し、')#▒' のようなバイナリ文字列を取得します。これから実際のタイムスタンプを取得するにはどうすればよいですか? unpack('L') しようとしましたが、結果として Array([1] => 0) が得られます。本当にゼロ、つまり 1970-01-01 があるのでしょうか、それとも何か見逃したのでしょうか?
perl - 実際に解凍せずにPerlでパックされたアイテムの数を取得するにはどうすればよいですか?
pack
次のようなものを使用して順次作成された ed 値の文字列があります。
別のプログラムでは、 をロードした後$packed
、実際にパックされた値の数を知りたいと考えています。unpack
私はing後にそれを行う方法を知っています:
しかし、それは本当に必要ですか?値の数だけを気にする場合は、unpack
ing をスキップしてもっとうまくやることはできますか?
perl - unpack('h *'...)またはpack('h *'...)はいつ使用しますか?
Perlではpack
、unpack
バイトを16進数に変換するための2つのテンプレートがあります。
h
16進文字列(最初に低いニブル)。
H
16進文字列(最初に高ニブル)。
これは、例を使用して最も明確になります。
ご覧のとおり、H
バイトを16進数に変換したり、16進数から変換したりすることを考えると、一般的にはこのようになります。では、その目的はh
何ですか?ラリーは誰かがそれを使うかもしれないと思っていたに違いありません、さもなければ彼はそれを含めることを気にしなかっただろう。
h
またはの代わりにH
実際に使用したい実際の例を挙げていただけますpack
かunpack
? 具体的な例を探しています。そのようなバイトを編成したマシンを知っている場合、それは何でしたか、そしてそのドキュメントにリンクできますか?
フォーマットが何であるかを気にしないときにデータをシリアル化するなど、読み戻すことができる限り、使用 できる例を考えることができますが、その場合も同様に役立ちます。よりも便利な例を探しています。h
H
h
H