ãããæŒç®ã®èœãšã穎ïŒãªãŒããŒãããŒãšå¢çå€ãçè§£ãã
ç§ã¯çŸåšãåºæ¬æ å ±æè¡è 詊éšã®ååŸãç®æããŠããã2ã®è£æ°ã«é¢ããèšäºã«ç¶ããŠãä»åã¯ããããæŒç®ãšãªãŒããŒãããŒãã«ã€ããŠãŸãšããŠãããŸãã
ãããæŒç®ã¯ãã³ã³ãã¥ãŒã¿ãŒã®æ ¹å¹¹ãšãªãåŠçã§ãããããã°ã©ãã³ã°ã«ãããŠãéåžžã«éèŠãªæŠå¿µã§ãããããåŠç¿ãé²ããäžã§ãããªãå šãããã1ã®ãšã-1ã«ãªãã®ããããªãŒããŒãããŒã¯ãã€çºçããã®ãããšãã£ãçåã«çŽé¢ããŸããããããã®çåã解決ããŠããéçšã§ããããæŒç®ã®å¥¥æ·±ããšããããåŒãèµ·ããäºæããªãåäœã«ã€ããŠçè§£ãæ·±ããããšãã§ããŸããã
åºæ¬æ å ±æè¡è 詊éšã§ã¯ããããæŒç®ããªãŒããŒãããŒã«é¢ããåé¡ãé »åºãããããããããã®æŠå¿µããã£ããçè§£ããããšã¯è©Šéšå¯ŸçãšããŠãéèŠã§ãã
ç®æ¬¡
- ã¯ããã«
- nãããã§ã®æ°å€ç¯å²ãçè§£ãã
- åºæ¬çãªãããæŒç®åã®ä»çµã¿ãšæŽ»çšæ³
- 2â¿ä»¥å€ã®æ°ã§ã®æãç®ã»å²ãç®
- ãªãŒããŒãããŒãèµ·ããæ¡ä»¶
- å šãããã1ã-1ã«ãªãçç±
- ãŸãšã
ã¯ããã«
ãããæŒç®ã¯ãã³ã³ãã¥ãŒã¿ãŒãµã€ãšã³ã¹ã®åºç€äžã®åºç€ã§ãããããããã®åçŽãããã«èŠèœãšããã¡ãªèœãšãç©Žãæ°å€ãååšããŸãã
å®éã«åŠç¿ãé²ããŠã¿ããšããããæŒç®ã«ãããå¢çå€ã®æ±ãããªãŒããŒãããŒã®çºçæ¡ä»¶ããããã°ã©ã ã®äºæããªãåäœãåŒãèµ·ããåå ãšãªãããšãåãããŸããã
nãããã§ã®æ°å€ç¯å²ãçè§£ãã
åºæ¬çãªæ°å€ç¯å²ã®å ¬åŒ
ã³ã³ãã¥ãŒã¿ãŒã§æ±ããæ°å€ã®ç¯å²ã¯ã䜿çšãããããæ°ã«ãã£ãŠæ±ºãŸããŸãã
笊å·ãªãæŽæ°ã®å Žå
ç¯å²ïŒ0 †æ°å€ †2â¿ - 1
å ·äœäŸ
4ããã: 0 †æ°å€ †15 (2⎠- 1 = 15)
8ããã: 0 †æ°å€ †255 (2âž - 1 = 255)
16ããã: 0 †æ°å€ †65535 (2¹ⶠ- 1 = 65535)
笊å·ä»ãæŽæ°ïŒ2ã®è£æ°ïŒã®å Žå
ç¯å²ïŒ-2â¿â»Â¹ †æ°å€ †2â¿â»Â¹ - 1
å ·äœäŸ
4ããã: -8 †æ°å€ †7 (-2³ †æ°å€ †2³ - 1)
8ããã: -128 †æ°å€ †127 (-2ⷠ†æ°å€ †2â· - 1)
16ããã: -32768 †æ°å€ †32767 (-2¹ⵠ†æ°å€ †2¹ⵠ- 1)
2â¿ - 1ã®æå³ãæ·±ãçè§£ãã
ãªã2â¿ - 1ãæå€§å€ã«ãªãã®ã
nãããã§è¡šçŸã§ãããã¿ãŒã³ã®ç·æ°ã¯2â¿åã§ãã
4ãããã®å Žå
0000, 0001, 0010, 0011, 0100, 0101, 0110, 0111,
1000, 1001, 1010, 1011, 1100, 1101, 1110, 1111
ç·æ°ïŒ16åïŒ2⎠= 16ïŒ
笊å·ãªãæŽæ°ã§ã¯ããããã0ãã15ïŒ2⎠- 1 = 15ïŒã®å€ãšããŠäœ¿çšããŸãã
ããããã¿ãŒã³ãšæ°å€ã®å¯Ÿå¿
4ããã笊å·ãªãæŽæ°ã®å¯Ÿå¿è¡š
ããã | 10鲿° | èšç®åŒ |
---|---|---|
0000 | 0 | 0Ã8 + 0Ã4 + 0Ã2 + 0Ã1 |
0001 | 1 | 0Ã8 + 0Ã4 + 0Ã2 + 1Ã1 |
0010 | 2 | 0Ã8 + 0Ã4 + 1Ã2 + 0Ã1 |
... | ... | ... |
1111 | 15 | 1Ã8 + 1Ã4 + 1Ã2 + 1Ã1 |
åºæ¬çãªãããæŒç®åã®ä»çµã¿ãšæŽ»çšæ³
äž»èŠãªãããæŒç®å
ANDæŒç®åïŒ &
ïŒ
äž¡æ¹ ã®ãããã1ã®å Žåã®ã¿1ã«ãªããŸãã
1010 & 1100 = 1000
詳现
1010
& 1100
------
1000
åæ¡ã§ã®èšç®
1 AND 1 = 1
0 AND 1 = 0
1 AND 0 = 0
0 AND 0 = 0
ORæŒç®åïŒ |
ïŒ
ãããã ã®ãããã1ã®å Žå1ã«ãªããŸãã
1010 | 1100 = 1110
詳现
1010
| 1100
------
1110
åæ¡ã§ã®èšç®
1 OR 1 = 1
0 OR 1 = 1
1 OR 0 = 1
0 OR 0 = 0
XORæŒç®åïŒ ^
ïŒ
ãããã ç°ãªã å Žåã®ã¿1ã«ãªããŸãã
1010 ^ 1100 = 0110
詳现ïŒ
1010
^ 1100
------
0110
åæ¡ã§ã®èšç®
1 XOR 1 = 0
0 XOR 1 = 1
1 XOR 0 = 1
0 XOR 0 = 0
XORã®éèŠãªæ§è³ª
A ^ A = 0 ïŒåãå€å士ã®XORã¯0ïŒ
A ^ 0 = A ïŒ0ãšã®XORã¯å
ã®å€ïŒ
NOTæŒç®åïŒ ~
ïŒ
ãã¹ãŠ ã®ããããå転ããŸãã
1010 = 0101 (4ãããã®å Žå)
ã·ããæŒç®å
å·Šã·ããïŒ<<ïŒ
æå®ããæ°ã ãããããå·Šã«ã·ããããå³åŽã«ã¯0ãåããŸãã
1010 << 2 = 101000
å·Šã·ããã¯å®è³ªçã«æ°å€ã2ã®ã¹ãä¹åã ãæããããšã«çžåœããŸããããšãã°ãããæ°ã3åå·Šã·ãããããšããã®æ°ã¯8åã«ãªããŸãã
äŸ
5 << 3 = 5 à 2³ = 5 à 8 = 40
ãããã巊端ããã¯ã¿åºããå Žåããã®ãããã¯å€±ãããŸãã
8ãããäŸ
10100000 << 2 = 10000000ïŒå
é 2ããããã¯ã¿åºããŠæ¶å€±ïŒ
泚æç¹ãšããŠãå·Šã·ããã¯ç®è¡ã·ãããšè«çã·ããã®åºå¥ããªããã©ã¡ããåãæäœã«ãªããŸããïŒç¬Šå·ããããå€ãããããªã·ããã¯ãªãŒããŒãããŒãšã¿ãªãããããïŒ
å³ã·ããïŒ>>ïŒ
æå®ããæ°ã ãããããå³ã«ã·ããããŸããå³ã·ããã«ã¯ãè«çã·ããããšãç®è¡ã·ããããèæ ®ããå¿ èŠããããŸãã
è«çã·ããïŒå·ŠåŽã«åžžã«0ãåãã笊å·ã«é¢ä¿ãªãåçŽã«ããããå³ã«ç§»åããŸãã笊å·ãªãæŽæ°ã®æäœã«é©ããŠããŸãã
1010 >> 2 = 0010
ç®è¡ã·ããïŒç¬Šå·ä»ãæ°å€ã§äœ¿ãããå·ŠåŽã«ã¯æäžäœãããïŒç¬Šå·ãããïŒãšåãå€ãåããŸããããã«ãããè² ã®æ°ã¯è² ã®ãŸãŸã·ãããããŸãã
æ£æ°: 01010000 >> 2 = 00010100ïŒå·ŠåŽã«0ãåããïŒ
è² æ°: 10110000 >> 2 = 11101100ïŒå·ŠåŽã«1ãåããïŒ
ã©ã¡ãã®å Žåããå³ç«¯ããã¯ã¿åºãããããã¯å€±ãããŸãã
00001101 >> 2 = 00000011ïŒæäžäœ2ããããæ¶å€±ïŒ
å³ã·ããã¯å®è³ªçã«æ°å€ã2ã®ã¹ãä¹åã ãå²ãæäœã«çžåœããŸãã
äŸ
40 >> 2 = 40 ÷ 2² = 40 ÷ 4 = 10
ã€ãŸããå²ãç®ãã§ããŸãã
2â¿ä»¥å€ã®æ°ã§ã®æãç®ã»å²ãç®
ã·ããæŒç®ã®éçãšè§£æ±ºæ¹æ³
ã·ããæŒç®ã¯2ã®ã¹ãä¹ïŒ2ã4ã8ã16...ïŒã§ã®æãç®ã»å²ãç®ã«ã¯å¹ççã§ããã3åã5åãšãã£ãèšç®ã¯ã§ããŸããã
ãã®åé¡ã¯ãä»»æã®æ°ã2ã®ã¹ãä¹ã®åãšããŠåè§£ããããšã§è§£æ±ºã§ããŸãã
æãç®
5åã®èšç®äŸïŒ5 = 4 + 1ïŒ
7 à 5ã®èšç®
7 Ã 5 = 7 Ã (4 + 1)
= 7 Ã 4 + 7 Ã 1
= 28 + 7
= 35
13åã®èšç®äŸïŒ13 = 8 + 4 + 1ïŒ
5 à 13ã®èšç®
5 Ã 13 = 5 Ã (8 + 4 + 1)
= 5 Ã 8 + 5 Ã 4 + 5 Ã 1
= 40 + 20 + 5
= 65
å²ãç®
å²ãç®ã®å Žåã¯ãè¢«é€æ°ãšé€æ°ã2鲿°ã«å€æããŠããèšç®ãè¡ããŸãã
28 ÷ 7ã®èšç®äŸ
2鲿°å€æ
28 = 11100 (è¢«é€æ°)
7 = 111 (逿°)
11100 ÷ 111 = 100
= 4
45 ÷ 9ã®èšç®äŸ
2鲿°å€æ
45 = 101101 (è¢«é€æ°)
9 = 1001 (逿°)
101101 ÷ 1001 = 101
= 5
ãªãŒããŒãããŒãèµ·ããæ¡ä»¶
ãªãŒããŒãããŒãšã¯
ãªãŒããŒãããŒãšã¯ãèšç®çµæãããã®å€æ°ã衚çŸã§ããæ°å€ç¯å²ãè¶ ããŠããŸãçŸè±¡ã®ããšã§ãã
笊å·ãªãæŽæ°ã§ã®ãªãŒããŒãããŒ
å ç®ã§ã®ãªãŒããŒãããŒäŸïŒ8ããã笊å·ãªãæŽæ°ã§ã® 200 + 100
ïŒ
-
èšç®ã®å®è¡: 200 + 100 = 300
-
æå€§å€ãšã®æ¯èŒ: 8ããã笊å·ãªãæŽæ°ã§è¡šçŸã§ããæå€§å€ã¯255ã§ãã èšç®çµæã®300ã¯ããã®æå€§å€ãè¶ ããŠããŸã
-
ãªãŒããŒãããŒã®çºç: èšç®çµæã衚çŸå¯èœãªç¯å²ãè¶ ããããããªãŒããŒãããŒãçºçããŸã
-
å®éã®çµæ: è¶ ããéšåïŒ8ãããã®å Žåã256ïŒãç Žæ£ããŸãã
300 - 256 = 44 ãå®éã®çµæãšãªããŸã -
ãããã¬ãã«ã§ã®è¡šçŸ:
- 200:
11001000
- 100:
01100100
11001000 + 01100100 ---------- 1 00101100
- 200:
-
äžäœãããã®ç Žæ£: 8ããããè¶ ããæäžäœããããç Žæ£ãããŸã
-
ãªãŒããŒãããŒåŸã®å€: çµæãšããŠ
00101100
ãæ®ããããã¯10鲿°ã®44ã«çžåœããŸã
å·Šã·ããã§ã®ãªãŒããŒãããŒäŸïŒ8ããã笊å·ãªãæŽæ°ã§ã® 200 à 2
ïŒ
-
åæç¶æ : 200ã2鲿°ã§è¡šçŸããŸã
- 200ã®2鲿°è¡šèšã¯
11001000
ã§ã
- 200ã®2鲿°è¡šèšã¯
-
å·Šã·ããã®å®è¡: 1ãããå·Šã«ã·ããããŸã
-
11001000 << 1
ã®çµæã¯110010000
ã«ãªããŸã
-
-
ãããæ°ã®ç¢ºèª:
- çµæã¯9ãããã«ãªããããã¯8ãããã§è¡šçŸã§ããŸãã
-
ãªãŒããŒãããŒã®çºç:
- 9ãããç®ïŒæäžäœãããïŒããªãŒããŒãããŒããç Žæ£ãããŸã
-
å®éã®çµæ:
- äžäœ8ããã
10010000
ãæ®ããŸã
- äžäœ8ããã
-
çµæã®ç¢ºèª:
-
10010000
ã¯10鲿°ã§144ã§ã
-
-
çµè«:
- å·Šã·ããã«ãããªãŒããŒãããŒãçºçãããããå ã®èšç®çµæã®400ã§ã¯ãªãã144ãå®éã«èšé²ãããŸã
笊å·ä»ãæŽæ°ã§ã®ãªãŒããŒãããŒ
8ããã笊å·ä»ãæŽæ°ã§ã®æ£ã®ãªãŒããŒãããŒäŸïŒ127 + 1
ïŒ
-
åæç¶æ : èšç®å¯Ÿè±¡ã®æ°å€ã2鲿°ã§è¡šçŸããŸã
- 127ã®2鲿°è¡šèšã¯
01111111
ã§ã - 1ã®2鲿°è¡šèšã¯
00000001
ã§ã
- 127ã®2鲿°è¡šèšã¯
-
å ç®æäœã®å®è¡: 2ã€ã®æ°å€ãå ç®ããŸã
-
01111111 + 00000001
ã®çµæã¯10000000
ã«ãªããŸã
-
-
çµæã®ç¢ºèª:
- æäžäœãããã1ã«ãªããŸããïŒç¬Šå·ããããå€åïŒ
-
ãªãŒããŒãããŒã®çºç:
- 笊å·ä»ãæŽæ°ã§ã¯æäžäœãããã笊å·ã衚ããããçµæã¯è² ã®æ°ã«ãªããŸã
-
å®éã®çµæ:
-
10000000
ã¯2ã®è£æ°è¡šçŸã§ã¯ -128 ã衚ããŸã
-
-
æåŸ å€ãšã®æ¯èŒ:
- æ¬æ¥ã®èšç®çµæã¯ 128 ã§ããã¹ãã§ããã8ããã笊å·ä»ãæŽæ°ã®æå€§å€ïŒ127ïŒãè¶ ããŸãã
-
çµè«:
- æ£ã®æ°ããè² ã®æ°ãžãæãè¿ãããçºçããèšç®çµæãäžæ£ç¢ºã«ãªããŸãã
è² ã®ãªãŒããŒãããŒ
8ããã笊å·ä»ãæŽæ°ã®äŸïŒ
-100 + (-50) = -150 â ãªãŒããŒãããŒ
10011100 (-100)
+11001110 (-50)
---------
101100110 â äžäœãããç Žæ£ â 01100110 = 102
å šãããã1ã-1ã«ãªãçç±
2ã®è£æ°è¡šçŸã§ã®-1
ãŸãã-1ã2ã®è£æ°ã§è¡šçŸããéçšãèŠãŠã¿ãŸãããã
ã8ãããã§ã®-1ã®æ±ãæ¹ã
æé 1ïŒ1ã®2鲿°è¡šçŸ
1 = 00000001
æé 2ïŒãããå転ïŒ1ã®è£æ°ïŒ
00000001 â 11111110
æé 3ïŒ1ãå ç®ïŒ2ã®è£æ°ïŒ
11111110 + 00000001 = 11111111
çµæïŒ-1 = 11111111
ãªãå šãããã1ã§-1ã«ãªãã®ã
æ°åŠçãªèª¬æ
2ã®è£æ°è¡šçŸã§ã¯ãæäžäœããããè² ã®éã¿ãæã¡ãŸãã
8ããã2ã®è£æ°ã§ã®éã¿
-128, 64, 32, 16, 8, 4, 2, 1
11111111ã®èšç®
1Ã(-128) + 1Ã64 + 1Ã32 + 1Ã16 + 1Ã8 + 1Ã4 + 1Ã2 + 1Ã1
= -128 + (64 + 32 + 16 + 8 + 4 + 2 + 1)
= -128 + 127
= -1
å ç®ã«ããæ€èšŒ
1 + (-1) = 0 ã®æ€èšŒ
00000001 (+1)
+ 11111111 (-1)
-----------
100000000 â æ¡ããµãã§äžäœãããåé€ â 00000000 (0)
çµæïŒ1 + (-1) = 0 â
nãããã§ã®äžè¬çãªãã¿ãŒã³
4ãããïŒ 1111 = -1
8ãããïŒ 11111111 = -1
16ãããïŒ1111111111111111 = -1
32ãããïŒ11111111111111111111111111111111 = -1
ãã®äžè²«æ§ãã2ã®è£æ°è¡šçŸã®ç¹åŸŽã®äžã€ã§ãã
ä»ã®éèŠãªå¢çå€
4ããã2ã®è£æ°ã§ã®éèŠãªå€
0000 = 0 (æå°ã®çµ¶å¯Ÿå€)
0111 = 7 (æå€§ã®æ£æ°)
1000 = -8 (æå°ã®è² æ°)
1111 = -1 (æå€§ã®è² æ°)
8ããã2ã®è£æ°ã§ã®éèŠãªå€
00000000 = 0 (æå°ã®çµ¶å¯Ÿå€)
01111111 = 127 (æå€§ã®æ£æ°)
10000000 = -128 (æå°ã®è² æ°)
11111111 = -1 (æå€§ã®è² æ°)
ãŸãšã
ãããæŒç®ãšãªãŒããŒãããŒã¯ãåºæ¬æ å ±æè¡è 詊éšã«ãããŠç¢ºå®ã«åŸç¹ãããéèŠåéã§ããåŠç¿ãéããŠçè§£ãããã€ã³ãããŸãšãããšä»¥äžã®éãã§ãã
-
åºæ¬çãªçè§£
- nãããã§ã®æ°å€ç¯å²ïŒç¬Šå·ãªã: 0ã2â¿-1ã笊å·ãã: -2â¿â»Â¹ã2â¿â»Â¹-1ïŒã®ææ¡
- åºæ¬çãªãããæŒç®åïŒAND, OR, XOR, NOTïŒãšåã·ããæŒç®ã®ä»çµã¿
- å šãããã1ã®å€ã-1ã«ãªã2ã®è£æ°è¡šçŸã®åç
-
ãªãŒããŒãããŒã®ä»çµã¿
- 衚çŸå¯èœãªæ°å€ç¯å²ãè¶ ããéã®ãæãè¿ããçŸè±¡ã®çè§£
- 笊å·ãªãæŽæ°ãšç¬Šå·ä»ãæŽæ°ããããã§ã®ãªãŒããŒãããŒçºçæ¡ä»¶ã®éã
- å·Šã·ããã«ãããªãŒããŒãããŒã®ã¡ã«ããºã
-
ãªãŒããŒãããŒã®å¯Ÿç
- å ç®ãä¹ç®ãã·ããæŒç®ã§ã®ãªãŒããŒãããŒçºçæ¡ä»¶
- äºåæ€åºã«ãããã°é²æ¢
- ã»ãã¥ãªãã£è匱æ§ãžã®é æ ®
-
å¿çšç¥è
- ã·ããæŒç®ã掻çšããå¹ççãª2ã®ã¹ãä¹ã®æãç®ã»å²ãç®
- ä»»æã®æ°ã2ã®ã¹ãä¹ã®åãšããŠåè§£ããæãç®ãã¯ããã¯
- å¢çå€ïŒæå€§å€ãæå°å€ã-1ãªã©ïŒã®ç¹åŸŽãšæ±ãæ¹
ååŠè ã«ãšã£ãŠã¯è€éã«æããããå 容ã§ãããããããã¿ãŒã³ãçŽã«æžããŠæãåãããªããèšç®ããåºæ¬åçãçè§£ããããšã§ç¢ºå®ã«èº«ã«ã€ããŸããç¹ã«ã衚çŸå¯èœãªç¯å²ããšããªãŒããŒãããŒæã®æåãããã£ããæŒãããããšãéèŠã§ãã
ãã®èšäºã®å 容ã«èª€ããããã°ã³ã¡ã³ãã§ãææããã ããŸããšå¹žãã§ãããŸãããããæŒç®ããªãŒããŒãããŒãçŸå Žã§ã©ã®ããã«æŽ»çšããŠããããåŠç¿ãçè§£ãæ·±ããããã®ç¬èªã®ã³ããçŽæçã«çè§£ã§ããããšã話ããã¯ããã¯ãªã©ãçæ§ã®çµéšã«åºã¥ãç¥èŠããã²å ±æããŠããã ããã°ãšåããŸãã