Upgrade to Pro — share decks privately, control downloads, hide ads and more …

_美馬さん_入門_ビット演算.pdf

akatsukinewgrad
May 19, 2022
780

 _美馬さん_入門_ビット演算.pdf

akatsukinewgrad

May 19, 2022
Tweet

Transcript

  1. $ whoami   Takashi Mima (task4233) 👀 バックエンドとセキュリティ   散歩とGo

      task4233.dev   最近は何故かJavaばかり書いてます 2
  2. コンピュータはデータをビットの集合で表している ビット(0 or 1) ・0 と 1 の2通りの状態を表現できるデータの単位 ・電圧の高低などで管理される 例

    ・単精度浮動小数点数(IEEE 754)は32ビットで1つの数値 ・ASCIIコードは7ビットで1文字 ・整数は利用ビット数に応じて範囲が変化する 4
  3. ビット単位で行う演算がビット演算 演算子 説明 ~ (NOT) 値を反転する & (AND) 両方のビットが1ならば1、そうでなければ0 |

    (OR) どちらか一方が1なら1、そうでなければ0 ^ (XOR) どちらか一方のみが1なら1、そうでなければ0 << (左シフト) 指定した数だけビット列を左にずらす >> (右シフト) 指定した数だけビット列を右にずらす 5
  4. 2変数のみでのSwap void swap(int *a, int *b) { int tmp =

    *a; *a = *b; *b = tmp; } 1 void swap(int *a, int *b) { *a ^= *b; *b ^= *a; *a ^= *b; }