• memo/lsl/operators.txt
  • 最終更新: 2017/12/14 14:06
  • by fk0724

today : 1 / yesterday : 0 / total : 501

ビット演算子

integer a = 2 // 0000 0000 0000 0000 0000 0000 0000 0010
 
return ~a // 1111 1111 1111 1111 1111 1111 1111 1101

ある定数 a に、b のビットが立っているかどうか確認する場合に用いる。

integer a = 0x12345678 // 0001 0010 0011 0100 0101 0110 0111 1000
integer b =       0x40 // 0000 0000 0000 0000 0000 0000 0100 0000
// -----------------------------------------------------------------
return a&b             // 0000 0000 0000 0000 0000 0000 0100 0000

ある定数 a に、b のビットを立てたい場合に用いる。

integer a = 0x12345678 // 0001 0010 0011 0100 0101 0110 0111 1000
integer b =        0x4 // 0000 0000 0000 0000 0000 0000 0000 0100
// -----------------------------------------------------------------
a = a|b                // 0001 0010 0011 0100 0101 0110 0111 1010

ある定数 a の、b のビットだけ反転させたい場合に用いる。

integer a = 0x12345678 // 0001 0010 0011 0100 0101 0110 0111 1000
integer b =       0x40 // 0000 0000 0000 0000 0000 0000 0100 0000
// -----------------------------------------------------------------
a = a^b                // 0001 0010 0011 0100 0101 0110 0011 1000
integer a = 2 // 0000 0000 0000 0000 0000 0000 0000 0010
 
return a<<1 // 0000 0000 0000 0000 0000 0000 0000 0100
integer a = 2 // 0000 0000 0000 0000 0000 0000 0000 0010
 
return a>>1 // 0000 0000 0000 0000 0000 0000 0000 0001

※ 右シフトにおいては、符号ビットは保存される

integer a = 16 // 0000 0000 0000 0000 0000 0000 0001 0000
integer b = -2 // 1111 1111 1111 1111 1111 1111 1111 1110
 
return a>>1 // 0000 0000 0000 0000 0000 0000 0000 1000
return b>>1 // 1111 1111 1111 1111 1111 1111 1111 1111
  • memo/lsl/operators.txt
  • 最終更新: 2017/12/14 23:06
  • by fk0724