r138 vs r139
......
2222
2323
== | 기호 테스트 ==
2424
=== 논리 연산 ===
25
두 식을 두고 | 기호 테스트를 해보았을 , {{{#!if (1==1)|(0==0)
25
두 식을 두고 | 기호 테스트를 해보았을 , {{{#!if (1==1)|(0==0)
2626
두 식이 모두 참일 때는 당연히 출력되며 }}}{{{#!if (1==1)|(1==0)
2727
마주 보는 두 식중 오른쪽이 거짓이 되었든 }}}{{{#!if (1==2)|(2==2)
2828
왼쪽이 거짓이 되었든 하나가 거짓이라 하더라도 나머지 하나가 참이라면 출력이 된다.}}} 양쪽의 식 모두가 거짓(false)이라면 출력되지 않는다. {{{#!if (1==2)|(1==0)
......
3131
앞의 true와 false가 진짜 true, false로 동작되는지 확인해보는 겸 테스트를 해보자면 {{{#!if true | true
3232
true | true 로 적었을 때 출력이 된다. }}}{{{#!if true | false
3333
true | false 로 조건을 적든}}}{{{#!if false | true
34
false | true로 조건을 적든 출력이 되므로 true와 false는 true와 false가 맞다.}}} false | false 로 if를 걸었을 출력할 문구가 나오지 않는 상황을 보면 true가 true이고 false는 false임이 확실하다. {{{#!if false | false
34
false | true로 조건을 적든 출력이 되므로 true와 false는 true와 false가 맞다.}}} false | false 로 if를 걸었을 출력할 문구가 나오지 않는 상황을 보면 true가 true이고 false는 false임이 확실하다. {{{#!if false | false
3535
출력 (| 기호)}}}
3636
3737
그러므로 | 기호는 논리연산 OR에 해당된다.
......
4040
마찬가지로 동작된다.}}} 그러나 |기호를 3개를 적어 식으로 걸어보면 동작되지 않는다.{{{#!if true ||| true
4141
출력 (| 기호)}}}
4242
=== 비트 연산 ===
43
| 기호가 2진수 비트합으로도 처리되는 것은, true와 false 진리값이 각각 1, 0인 논리를 시스템상에서 나타내므로
44
|| || case1 || case2 || case3 || case4 ||
43
| 기호가 2진수 비트합으로도 처리되는 상황을 설명하자면 true와 false 진리값이 각각 1, 0인 논리를 시스템상 먼저 볼 필요가 있다.
44
||<table bgcolor=transparent,transparent> || case1 || case2 || case3 || case4 ||
4545
|| A || 1 || 1 || 0 || 0 ||
4646
|| B || 1 || 0 || 1 || 0 ||
47
|| A|B || 1 || 1 || 1 || 0 ||
48
표와 같이 처리되 때문으로 보인다. (1을 true, 0을 false 놓고 보면 | 연산 결과가 같다.)
47
|| A {{{#orange \|}}} B || 1 || 1 || 1 || 0 ||
48
OR은 위 표와 같이 처리되는데 1을 true, 0을 false 놓고 보면 | 연산 결과가 같다.
4949
50
그래서 이진법 각 자릿수별로 | 연산 비교가 가능것으로다.
51
가령 5|3을 보자면 이진법으로 변환한 값의 각 자릿수에 따라 연산이 다.
52
|| 10진수 || 2^^^2^^^ || 2^^^1^^^ || 2^^^0^^^ ||
50
{{{#!if (5|3) ==7
51
를 이진법 적용하게 되자면 2진법의 각 자릿수별로 | 연산값을게 된다.
52
이를테면 5 | 3을 보자면 이진법으로 변환한 값의 각 자릿수에 따라 연산이 되어 7이 나온다. {{{#!wiki style="display: inline; font-family: monospace;"
53
(5|3)=7 }}}
54
||<table bgcolor=transparent,transparent> 10진수 || 2^^^2^^^ || 2^^^1^^^ || 2^^^0^^^ ||
5355
|| 5 = || 1 || 0 || 1 ||
5456
|| 3 = || 0 || 1 || 1 ||
55
|| (5|3) = 7 || 1 || 1 || 1 ||
56
----
57
(5|3)=7 테스트 : 출력된다.
58
{{{#!if (5|3) ==7
57
|| (5|3) = 7 || 1 || 1 || 1 ||}}}
58
만약 (5|3)==6 으로 테스트하게 되면 일(2^^0^^)의 자릿수가 틀려 출력되지 않게 된다.{{{#!if (5|3) ==6
5959
출력}}}
60
----
61
(5|3)=6 테스트 : 출력되지 않는다.
62
{{{#!if (5|3) ==6
63
출력}}}
64
그래서 (5|3)=7 조건부로 둔 if 구문(문법)을 놓으true로 동작되는 것으로 보인다.
65
----
66
(9|5)=13 테스트
60
61
{{{#!if (9|5) ==13
62
다른 예로 (9|5)==13을 걸 역시 동작다.
6763
|| 10진수 || 2^^^3^^^ || 2^^^2^^^ || 2^^^1^^^ || 2^^^0^^^ ||
6864
|| 9 = || 1 || 0 || 0 || 1 ||
6965
|| 5 = || 0 || 1 || 0 || 1 ||
7066
|| (9|5) = 13 || 1 || 1 || 0 || 1 ||
71
{{{#!if (9|5) ==13
67
}}}
68
(9|5)==12를 테스트하게 되면 일(2^^^0^^^)의 자릿수가 틀려서 출력되지 않는다.{{{#!if (9|5) ==12
7269
출력 (1101)}}}
73
----
74
(9|5)=12 테스트 : 일(2^^^0^^^)의 자릿수가 틀려서 출력되지 않는다.
75
{{{#!if (9|5) ==12
76
출력 (1101)}}}
7770
71
그러므로 | 기호는 비트 연산으로 쓰이든 논리 연산으로 쓰이든 "OR"로 계산된다.
72
7873
== & 기호 테스트 ==
7974
=== 논리 연산 ===
8075
& 기호 테스트 (한 쪽 false) : 출력되지 않는다.
......