2016年5月5日木曜日

2進数 10進数 16進数

2進数から10進数への変換

10進数

128

64

32

16

8

4

2

1

2進数

1

1

1

1

1

1

1

1
上図の通り2進数「11111111」の場合、10進数は128+64+32+16+8+4+2+1=「255」になる。


10進数

128

64

32

16

8

4

2

1

2進数

0

1

0

1

0

1

0

1
2進数「01010101」の場合、10進数は64+16+4+1=「85」になる。

10進数から2進数への変換
2進数から10進数への変換表を参考に、以下の通り計算する。
10進数1=2進数00000001
10進数2=2進数00000010
10進数3=上の表を参考に、2進数00000011


10進数192の場合・・
192から引けるだけ引いていく。引けたら1を立てる。

引く数

128

64

32

16

8

4

2

1

余り

64

0

0

0

0

0

0

0

2進数

1

1

0

0

0

0

0

0
10進数192 =2進数11000000

10進数170の場合・・
170 –

引く数

128

64

32

16

8

4

2

1

余り

42

0

10

0

2

0

0

0

2進数

1

0

1

0

1

0

1

0
10進数170 =2進数10101010

2進数から16進数への変換
  1. 2進数を4桁づつに分ける
  2. 10進数に変換する
  3. 16進数に変換する
16進数は10進数と区別するために値の先頭に「0x」をつけることがある。

2進数11111010の場合
2進数 1 1 1 1   1 0 1 0
10進数 8 4 2 1   8 4 2 1
16進数 F   A
2進数11111010 =10進数15・10 =16進数0xFA

2進数01100011の場合
2進数 0 1 1 0   0 0 1 1
10進数 8 4 2 1   8 4 2 1
16進数 6   3
2進数01100011 =10進数6・3 =16進数0x63

16進数から2進数への変換
  1. 16進数を1桁づつに分ける
  2. 10進数に変換する
  3. 2進数に変換する
16進数0x9cの場合
16進数 9   c
10進数 8 4 2 1   8 4 2 1
2進数 1 0 0 1   1 1 0 0
16進数9c =10進数9・12 =2進数10011100

16進数0x2Bの場合
16進数 2   B
10進数 8 4 2 1   8 4 2 1
2進数 0 0 1 0   1 0 1 1
16進数2B =10進数2・11 =2進数00101011

16進数から10進数への変換
  1. 16進数を1桁づつに分ける
  2. 10進数に変換する
  3. 2進数に変換する
  4. 10進数に変換する

16進数0xABの場合
16進数 A   B
10進数 8 4 2 1   8 4 2 1
2進数 1 0 1 0   1 0 1 1
10進数 128 64 32 16   8 4 2 1
16進数AB =10進数10・11 =2進数10101011 =10進数171

 

参考:指で数える2進数

10進数の31までなら片手の指で2進数に変換できます。
1. 10進数を右手の指に以下のように割り当てます。

 
2. 次の表のように折った指が2進数の1として数えます。折っていない指は0です。

1=00000001

2=00000010

3=00000011

4=00000100





5=00000101

6=00000110

7=00000111

8=00001000





9=0001001

10=0001010

11=0001011

12=0001100





13=0001101

14=0001110

15=0001111

16=00010000





17=00010001

18=00010010

19=00010011

20=00010100





21=00010101

22=00010110

23=00010111

24=00011000





25=00011001

26=00011010

27=00011011

28=00011100





29=00011101

30=00011110

31=00011111