私の知識の欠如はここにありますが、誰かが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進数の "型"(8ビット、16ビット、32ビット、...)に読み込む
- 2. 16進ビット操作
- 3. 32ビットの16進数を4バイトに分割する[QB64]
- 4. 64ビット環境で長い32ビットの16進数を読み取る
- 5. Wiresharkディセクターデコード64ビット16進
- 6. MIPS命令を32ビット16進数に変換する方法
- 7. 32ビットの数値を16ビット以下に変換する
- 8. Perl 64ビット16進数関数
- 9. 16ビットCPU、16ビットOSの仮想化
- 10. 浮動小数点数をJavaScriptの32ビット16進数文字列に変換
- 11. TCLの32ビット数値のリストに大きな16進数を分割する
- 12. アセンブリでのマルチスレッド32ビットまたは16ビット
- 13. 10進数から2進数への変換(16ビット)
- 14. ビット数のカウント。 16ビットアセンブリパリティプログラム
- 15. 8ビットから16ビットへの変換
- 16. 4ビット2進数の乗数を3(mod 16)
- 17. Pythonと16ビットPGM
- 18. 16ビットobjファイルVC++
- 19. LC3の最初の行(16ビット)のORIGの意味
- 20. タイムスタンプconvertion(MS-DOS:人間が読める形式に32ビットの16進値)
- 21. 16ビットの輝度値を32ビットのRGB値に変換する
- 22. 32ビットのファイルサイズと16ビットのユーザー入力を比較しますか?
- 23. 特定のビットを設定するには? - 16進数で?
- 24. ナンシーと16ビットのPGM
- 25. 16ビットの回転ハッシュ
- 26. opencv QVectorのMat 16ビット
- 27. アセンブリ - eax(32ビット)の内容を16ビット配列に移動する方法は?
- 28. 16ビットと32ビットの値を記述する用語はありますか?
- 29. ffmpeg FLAC 24ビット96khzから16ビット48khz
- 30. 64ビット整数をスパークデータフレームの32ビット(16ビット)intに変換する価値はありますか?
これはちょうど右端の8ビットを与え、右端の16ビットと一致するように0xFFFFに展開します。 – sisve
@sipwiz:私はそれに従うことができません... Hex 0xFは15です。これは4ビット(8 + 4 + 2 + 1)です。 – unwind
私の間違い申し訳ありません:(間違ったコメントと修正された回答を削除しました – sipwiz