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

わんくま同盟

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

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

■93257 / 1階層)  ビットからバイトを簡単に得る方法
□投稿者/ 魔界の仮面弁士 (2500回)-(2019/11/30(Sat) 19:23:46)
No93255 (ブラック さん) に返信
> あるバイト変数があり、
> それのnビット目が立っているかどうかを調べたいのですが、
> 普通に書くと以下のようになると思います。
> If bbb = (bbb Or CByte(2 ^ (n - 1))) Then

Visual Basic のバージョンは何でしょうか?

2003 以降ならビットシフト演算子を使えるので、n が 1〜8 の範囲であるのなら、
「CByte(2 ^ (n - 1))」よりも「CByte(1) << (n - 1)」の方が良いと思います。

^ 演算子って、結局のところ Math.Pow メソッドの呼び出しに過ぎないので、
前者だと、CByte 前に Double 型で処理されてしまうのが無駄に思えます。


> もっとエレガントに、00010000のような数列から
> ビット演算をすることはできないでしょうか?

2017 以降なら、2 進数リテラル表現を使って数値を表現できます。
Dim bin As Byte = &B1100_1001
編集キー/

前の記事(元になった記事) 次の記事(この記事の返信)
←ビットからバイトを簡単に得る方法 /ブラック 返信無し
 
上記関連ツリー

ビットからバイトを簡単に得る方法 / ブラック (19/11/30(Sat) 17:29) #93255
ビットからバイトを簡単に得る方法 / 魔界の仮面弁士 (19/11/30(Sat) 19:23) #93257 ←Now
Re[1]: ビットからバイトを簡単に得る方法 / キングダム (19/11/30(Sat) 18:59) #93256
  └ Re[2]: ビットからバイトを簡単に得る方法 / ブラック (19/11/30(Sat) 21:46) #93259 解決済み
    └ Re[3]: ビットからバイトを簡単に得る方法 / ブラック (19/11/30(Sat) 21:49) #93260
      ├ Re[4]: ビットからバイトを簡単に得る方法 / KOZ (19/11/30(Sat) 22:06) #93261
      └ Re[4]: ビットからバイトを簡単に得る方法 / キングダム (19/11/30(Sat) 22:20) #93263
        └ Re[5]: ビットからバイトを簡単に得る方法 / ブラック (19/12/01(Sun) 14:08) #93266 解決済み

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