Hatena::ブログ(Diary)

crazyuplog このページをアンテナに追加 RSSフィード

2009-06-08

n進数と2の補数

  • 2進数→10進数
  • 10進数→2進数
  • 16進数→10進数
  • 10進数→16進数

2進数→10進数

1100(2) → 2^3*1+2^2*1+2^1*0+2^0*1 → 12(10)

110(2) → 2^2*1+2^1*1+2^0*0 → 6(10)

2進数10進数bit
111bit
1022bit
10043bit
100084bit
10000165bit
100000326bit
1000000647bit
100000001288bit
1000000002569bit

10進数→2進数

27(10) → 11011(2)

27/2=13..1
13/2=6..1
6/2=3..0
3/2=1..1
1/2=0..1

29(10) → 11101(2)

29/2=14..1
14/2=7..0
7/2=3..1
3/2=1..1
1/2=0..1

8(10) → 1000(2)

13(10) → 1101(2)

15(10) → 1111(2)

8421
15(10)=1111

15 = 8+4+2+1

16進数→10進数

1〜16(10) = 0〜9 a〜f(16)

1c(16) → 16^1*1+16^0*12 → (16*1)+(1*12) → 28(10)

ff(16) → 16^1*16+16^0*16 → (16*15)+(1*15) → 255(10)

cc(16) → 16^1*12+16^0*12 → (16*12)+(1*12) → 204(10)

9b(16) → 16^1*9+16^0*11 → (16*9)+(1*11) → 155(10)

10進数→16進数

29(10) → 1d(16)

20/16=1..d
1/16=0..1

85(10) → 55(16)

85/16=5..5
5/16=0..5

bit

  • 8bit = 1byte
  • ビットを立っている = 1になっている。
(例)パーミッション
421
  • true = 1
  • false = 0
  • 777 = (4*1+2*1+1*1) (4*1+2*1+1*1) (4*1+2*1+1*1)
  • 755 = (4*1+2*1+1*1) (4*1+2*0+1*1) (4*1+2*0+1*1)

負数

参考:負数(2の補数表現)

  • 1の補数は0と1を反転させる
  • 2の補数は1の補数+1
  • 一番左のビットを符号ビット(+か0は0/-は1)

bit演算子

名称演算子説明結果
AND&12&912と9両方にセット8
OR12|912か9どちらかにセット13
XOR^12^912と9にセットされていて両方にセットされていないもの13
否定~~1212は逆にする-13

参考:PHP: ビット演算子 - Manual

Copyright © crazyup. All rights reserved.