C# と VB.NET の質問掲示板

わんくま同盟

ASP.NET、C++/CLI、Java 何でもどうぞ

C# と VB.NET の入門サイト

■99419 / 10階層)  ビット演算の方法に関して
□投稿者/ 魔界の仮面弁士 (3311回)-(2022/03/31(Thu) 14:45:42)
No99413 (furu さん) に返信
> ■No99411 (kiku さん) に返信
>> C#のソースですが、サンプル書いてみました。
> 普段使わないけどVB.NETで書いてみました。

3 バイトの配列を 12bit ごとに区切って、
2 個の 2 バイト配列に分解する関数を作ってみました。


Sub Main()
  Dim q = BitSplitter(&HAB, &HCD, &HEF)
  Console.WriteLine(BitConverter.ToString(q.Left))  'AB-C0
  Console.WriteLine(BitConverter.ToString(q.Right)) 'DE-F0
  Console.WriteLine()

  q = BitSplitter(&H12, &H34, &H56)
  Console.WriteLine(BitConverter.ToString(q.Left))  '12-30
  Console.WriteLine(BitConverter.ToString(q.Right)) '45-60
  Console.WriteLine()

  Dim bin3 As Byte() = {&H22, &H3, &H31}
  q = BitSplitter(bin3)
  Console.WriteLine(BitConverter.ToString(q.Left))  '22-00
  Console.WriteLine(BitConverter.ToString(q.Right)) '33-10
  Console.WriteLine()

  Console.ReadKey()
End Sub


Private Function BitSplitter(binary As Byte()) As (Left As Byte(), Right As Byte())
  Return BitSplitter(binary(0), binary(1), binary(2))
End Function

Private Function BitSplitter(a As Byte, b As Byte, c As Byte) As (Left As Byte(), Right As Byte())
  Return ({a, CByte(b And &HF0)}, {CByte((b << 4) Or (c >> 4)), c << 4})
End Function
編集キー/

前の記事(元になった記事) 次の記事(この記事の返信)
←Re[9]: ビット演算の方法に関して /furu →Re[11]: ビット演算の方法に関して /たろー
 
上記関連ツリー

ビット演算の方法に関して / たろー (22/03/30(Wed) 10:32) #99397
Re[1]: ビット演算の方法に関して / radian (22/03/30(Wed) 11:28) #99402
Re[1]: ビット演算の方法に関して / kiku (22/03/30(Wed) 11:17) #99400
  └ Re[2]: ビット演算の方法に関して / たろー (22/03/30(Wed) 11:25) #99401
    └ Re[3]: ビット演算の方法に関して / kiku (22/03/30(Wed) 11:35) #99403
      └ Re[4]: ビット演算の方法に関して / たろー (22/03/30(Wed) 11:38) #99404
        └ Re[5]: ビット演算の方法に関して / kiku (22/03/30(Wed) 11:45) #99405
          └ Re[6]: ビット演算の方法に関して / kiku (22/03/30(Wed) 11:47) #99406
            └ Re[7]: ビット演算の方法に関して / kiku (22/03/30(Wed) 11:54) #99407
              └ Re[8]: ビット演算の方法に関して / kiku (22/03/30(Wed) 16:43) #99411
                └ Re[9]: ビット演算の方法に関して / furu (22/03/30(Wed) 18:51) #99413
                  ├ Re[10]: ビット演算の方法に関して / kiku (22/03/31(Thu) 12:36) #99417
                  └ ビット演算の方法に関して / 魔界の仮面弁士 (22/03/31(Thu) 14:45) #99419 ←Now
                    └ Re[11]: ビット演算の方法に関して / たろー (22/04/01(Fri) 16:20) #99425
                      └ Re[12]: ビット演算の方法に関して / 魔界の仮面弁士 (22/04/01(Fri) 19:58) #99426
                        └ Re[13]: ビット演算の方法に関して / たろー (22/04/03(Sun) 19:48) #99428 解決済み

上記ツリーを一括表示 / 上記ツリーをトピック表示
 
上記の記事へ返信