私の知識の欠如はここにありますが、誰かが32ビット16進数の最初の16ビットをどのように得ることができるか教えてください。32ビット16進数の最初の16ビット
答えて
「最初の」とは何かを意味します。 0xdeadbeef
のような数字を指定すると、0xdead
または0xbeef
を「最初」と見なしますか?
前者の場合、数値を65536(整数)で割ります。後者の場合、モジュラスを65536に計算してください。
これはもちろんshift /などのバイナリ演算子でも可能ですが、希望の言語で表現する方法がわからないだけです。私は、より正確な詳細と他の答えがあることを確信しています。
最初に仮定すると、最小の価値ですか?
My32BitNumberがある場合は、実際には、例えば32ビットの数値を見ている場合
dim f16 as integer = &hFFFF and My32BitNumber
int型さて、最後の4桁の16進数であるDEADBEEF の最初の16ビットは何ですか?BEEF
& 0xffffとは何ですか?
int input = 0xabcd;
int first2Bytes = input & 0xffff;
これはあなたに4つのバイト配列として32ビットの数を取得します:取得するには
Dim first As Int16 = BitConverter.ToInt16(bytes, 0)
:符号付き16ビット数として最初の2つのバイトを取得するには
Dim bytes As Byte() = BitConverter.GetBytes(number)
を最初の2バイトは符号なし16ビット番号:
Dim first As UInt16 = BitConverter.ToUInt16(bytes, 0)
これはもちろん、ビットシフトまたは除算を使うよりも少し遅いですが、ビットシフトまたは除算の使用に問題があるかもしれない符号ビット(最上位ビット)を正しく処理します。
また、16ビットの符号なし数として最初の2つのバイトを取得し、それを整数に割り当てることができます。
Dim first As Integer = BitConverter.ToUInt16(bytes, 0)
(符号付き16ビット数を取得し、整数に割り当てることは符号ビットがあることを意味
最初の2バイト(最上位)の代わりに最後の2バイト(最下位)を使用したい場合は、その整数の上位16ビットにコピーしてください。 ToUInt16
/ToInt16
0から2まで呼び出します。
これは最も簡単なことですが、2つの計算を処理する必要があります。 – Shimmy
Dim i As Integer = &HDEADBEEF
Dim s16 As UShort
s16 = i And &HFFFF 'BEEF
'or
s16 = (i >> 16) And &HFFFF 'DEAD
- 1. 16進ビット操作
- 2. 64ビット環境で長い32ビットの16進数を読み取る
- 3. Perl 64ビット16進数関数
- 4. 32ビットの数値を16ビット以下に変換する
- 5. ビット数のカウント。 16ビットアセンブリパリティプログラム
- 6. 4ビット2進数の乗数を3(mod 16)
- 7. 8ビットから16ビットへの変換
- 8. 16ビットobjファイルVC++
- 9. Pythonと16ビットPGM
- 10. タイムスタンプconvertion(MS-DOS:人間が読める形式に32ビットの16進値)
- 11. 16ビットの輝度値を32ビットのRGB値に変換する
- 12. ナンシーと16ビットのPGM
- 13. 16ビットの回転ハッシュ
- 14. 最短のエンコーディング、16進数
- 15. sound.drv(16ビットサウンドドライバ)のWindows 32ビット相当品がありますか?
- 16. OpenGL C++:32ビットpngファイルを16ビット565RGBファイルに変換する方法
- 17. 下位16ビットをクリア
- 18. 16ビット整数配列圧縮
- 19. 符号付き16ビット整数は2の補数16ビット整数と同じです
- 20. 16ビット16進数の文字列をJavaで符号付き整数に変換する
- 21. MSVC 6では、int 16または32ビットですか?
- 22. 32ビットレジスタから16ビットを読み取る
- 23. なぜ10進数16のバイナリ表現のビット数== 5ですか?
- 24. 32桁の16進数を16バイトの配列に格納する方法は?
- 25. 16進数のConsole.WriteLine
- 26. 16進数のウイルスシグネチャデータベース
- 27. Pythonの16進数
- 28. Androidの16進数
- 29. 64ビットの16進数のための移植可能なprintfフォーマット指定子?
- 30. 16進数から16進数へのヌルポインタ例外エラー
これはちょうど右端の8ビットを与え、右端の16ビットと一致するように0xFFFFに展開します。 – sisve
@sipwiz:私はそれに従うことができません... Hex 0xFは15です。これは4ビット(8 + 4 + 2 + 1)です。 – unwind
私の間違い申し訳ありません:(間違ったコメントと修正された回答を削除しました – sipwiz