r167 vs r168
......
4848
4949
=== 비트 연산 ===
5050
| 기호, & 기호가 2진수 비트합으로도 처리되는 상황을 설명하자면 true와 false 진리값이 각각 1, 0인 논리를 시스템상을 먼저 볼 필요가 있다.
51
||<table bgcolor=transparent,transparent>{{{#!wiki style="display: inline-block; margin: 0 5px;"
51
||<table bgcolor=transparent,transparent>{{{#!wiki style="display: inline-block;"
5252
||<table bgcolor=transparent,transparent> || case1 || case2 || case3 || case4 ||
5353
|| A || {{{#dodgerblue true}}} || {{{#dodgerblue true}}} || {{{#tomato false}}} || {{{#tomato false}}} ||
5454
|| B || {{{#dodgerblue true}}} || {{{#tomato false}}} ||{{{#dodgerblue true}}} || {{{#tomato false}}} ||
55
|| A {{{#orange \∨}}} B || {{{#dodgerblue true}}} || {{{#dodgerblue true}}} || {{{#dodgerblue true}}} || {{{#tomato false}}} ||}}}||{{{#!wiki style="display: inline-block; margin: 0 5px;"
55
|| A{{{#orange \∨}}}B || {{{#dodgerblue true}}} || {{{#dodgerblue true}}} || {{{#dodgerblue true}}} || {{{#tomato false}}} ||}}}||{{{#!wiki style="display: inline-block;"
5656
||<table bgcolor=transparent,transparent> || case1 || case2 || case3 || case4 ||
5757
|| A || {{{#dodgerblue true}}} || {{{#dodgerblue true}}} || {{{#tomato false}}} || {{{#tomato false}}} ||
5858
|| B || {{{#dodgerblue true}}} || {{{#tomato false}}} || {{{#dodgerblue true}}} || {{{#tomato false}}} ||
......
6060
|| OR 연산 처리 || AND 연산 처리 ||
6161
OR(∨), AND(∧)는 위 표와 같이 처리된다. 2진법 수의 각 자리수에 따라 {{{#dodgerblue true}}}를 1, {{{#tomato false}}}를 0으로 놓고 | 연산은 OR(∨)처럼, &연산은 AND(∧)처럼 동작된다.
6262
63
이를테면 5 | 3을 보자면 이진법으로 변환한 값의 각 자릿수에 따라 연산이 되어 7이 나오므로 {{{#!wiki style="display: inline; font-family: monospace;"
64
(5|3)==7}}}만을 if 조건문으로 걸게 되면 동작된다. 다른 예로 {{{#!wiki style="display: inline; font-family: monospace;"
65
(9|5)==13}}}을 걸게 되면 역시 동작된다.
6366
{{{#!if (5|3) ==7
64
이를 이진법에 적용하게 되자면 2진법의 각 자릿수별로 | 연산을 한 값을 보게 된다.
65
이를테면 5 | 3을 보자면 이진법으로 변환한 값의 각 자릿수에 따라 연산이 되어 7이 나온다. {{{#!wiki style="display: inline; font-family: monospace;"
66
(5|3)=7 }}}
67
{{{#!wiki style="display: inline-block; margin: 0 5px;"
6768
||<table bgcolor=transparent,transparent> 10진수 || 2^^^2^^^ || 2^^^1^^^ || 2^^^0^^^ ||
6869
|| 5 = || 1 || 0 || 1 ||
6970
|| 3 = || 0 || 1 || 1 ||
70
|| (5|3) = 7 || 1 || 1 || 1 ||}}}
71
만약 (5|3)==6 으로 테스트하게 되면 일(2^^0^^)의 자릿수가 틀려 출력되지 않게 된다.{{{#!if (5|3) ==6
72
출력}}}
73
74
{{{#!if (9|5) ==13
75
다른 예로 (9|5)==13을 걸게 되면 역시 동작된다.
71
|| (5|3) = 7 || 1 || 1 || 1 ||}}}}}}{{{#!if (9|5) ==13
72
{{{#!wiki style="display: inline-block; margin: 0 5px;"
7673
||<table bgcolor=transparent,transparent> 10진수 || 2^^^3^^^ || 2^^^2^^^ || 2^^^1^^^ || 2^^^0^^^ ||
7774
|| 9 = || 1 || 0 || 0 || 1 ||
7875
|| 5 = || 0 || 1 || 0 || 1 ||
7976
|| (9|5) = 13 || 1 || 1 || 0 || 1 ||
80
}}}
81
(9|5)==12를 테스트하게 되면 일(2^^^0^^^)의 자릿수가 틀려 출력지 않는다.{{{#!if (9|5) ==12
77
}}}}}}
78
만약 (5|3)==6이나 (9|5)==12를 테스트하게 되면 두 식 모두 일(2^^0^^)의 자릿수가 틀려 출력할 문구가 나오지 않는다.{{{#!if (5|3) ==6
79
출력}}}{{{#!if (9|5) ==12
8280
출력 (1101)}}}
83
그러므로 | 기호는 비트 연산으로 쓰이든 논리 연산으로 쓰이든 "OR"로 계산된다.
8481
85
& 기호를 이용한 연산 보자. (25&19)=-17 조건으로 걸어보면 {{{#!if (25&19)==17
86
출력다. (25&19)==19를 보면 2^^^1^^^의 자릿수가 틀려서 출력되지 않는다.
82
& 기호를 이용한 연산 예로 {{{#!wiki style="display: inline; font-family: monospace;"
83
(25&19)==17}}}이나 {{{#!wiki style="display: inline; font-family: monospace;"
84
(20&11)==0}}}을 조건문에 넣어보면 출력할 문구가 나온다. (25&19)==19를 보면 2^^^1^^^의 자릿수가 틀려서 출력되지 않는다.{{{#!if (25&19)==19
85
출력}}}
86
{{{#!if (25&19)==17
87
{{{#!wiki style="display: inline-block; margin: 0 5px;"
8788
||<table bgcolor=transparent,transparent> 10진수 || 2^^^4^^^ || 2^^^3^^^ || 2^^^2^^^ || 2^^^1^^^ || 2^^^0^^^ ||
8889
|| 25 || 1 || 1 || 0 || 0 || 1 ||
8990
|| 19 || 1 || 0 || 0 || 1 || 1 ||
90
|| (25&19) = 17 || 1 || 0 || 0 || 0 || 1 ||}}}{{{#!if (25&19)==19
91
출력}}}
92
한 가지 더 예를 들어 (20&11)==0을 조건으로 두면 {{{#!if (20&11)==0
93
출력된다. 아래 표를 참고할 수 있다.
91
|| (25&19) = 17 || 1 || 0 || 0 || 0 || 1 ||}}}}}}{{{#!if (20&11)==0
92
{{{#!wiki style="display: inline-block; margin: 0 5px;"
9493
||<table bgcolor=transparent,transparent> 10진수 || 2^^^4^^^ || 2^^^3^^^ || 2^^^2^^^ || 2^^^1^^^ || 2^^^0^^^ ||
9594
|| 20 || 1 || 0 || 1 || 0 || 0 ||
9695
|| 11 || 0 || 1 || 0 || 1 || 1 ||
97
|| (20&11) = 0 || 0 || 0 || 0 || 0 || 0 ||}}}
98
그러므로 & 기호는 비트 연산으로 쓰이든 논리 연산으로 쓰이든 "AND"로 계산된다.
99
96
|| (20&11) = 0 || 0 || 0 || 0 || 0 || 0 ||}}}}}}
10097
== 부등호, 숫자 연산 기호 ==
10198
{{{#!if (1<2)&(2>=-3)
10299
부등호 계산으로 조건식을 만들 때, 음수값도 읽을 수 있다.}}}
......