問題タブ [nibble]
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.
php - PHPでニブル/テトラッドでバイナリ操作を実行するには?
それで、0から15までの数値があるので、それらを16進コード(0からf)で保存しました。これで、ニブルの 16 進コード値を含むデータの文字列ができました。
データは次のようになります。
a0fc3d78270db962e4ba525cf3acd
2つのニブルでバイナリxorを実行する正確/エレガント/高速な方法と、ニブルではなくバイナリを実行する最速の方法は何ですか?
私が今考えていることは、最初にニブルを完全なバイトに変換することです:
次に、これらのバイトに対して必要な操作 (xor または not) を実行し、結果の値を再びニブルに再変換します。
このアプローチの問題は、バイトに not (~) 操作を適用すると、最初の 4 ビットも逆になり (したがって、ニブルの左側に 1111 が追加されます)、さらに複雑になる必要があることです。上記のコードで結果をニブルに再変換する前に、結果の ord() 値から 240 を減算します。これにより、将来のコードのアップグレードが煩雑になるだけでなく、将来のコードの機能の解釈が難しくなります。
ニブルではなくビット単位の xor を実行し、結果の値を 16 進コード (文字列) として取得するための最良/正確な方法は何ですか?
例: