나는 다음과 같은 코드를 가지고 있고 그것이 의미 하는가를 이해 할 수 없습니다C++에서 "| ="연산의 의미는 무엇입니까?
var1 |= var2>0 ? 1 : 2;
누구나 제발 도움이 될 수 있습니다!
나는 다음과 같은 코드를 가지고 있고 그것이 의미 하는가를 이해 할 수 없습니다C++에서 "| ="연산의 의미는 무엇입니까?
var1 |= var2>0 ? 1 : 2;
누구나 제발 도움이 될 수 있습니다!
if (var2 > 0)
var1 = var1 | 1;
else
var1 = var1 | 2;
그것은 비트 또는이다.
모든 a op= b
연산자는 a = a op b
의 바로 가기입니다.
그러나 C++에서는 op
및 op=
을 별도로 재정의 할 수 있으므로 일관성을 위해 각 사용자 지정 유형 구현자가 의존합니다.
나는'@'과'@ ='에 다른 임무를 수행하는 악의적 인 사람을 생각할 것이다 : –
@Matthieu : C++은 너 자신에게 매달려있는 로프를 많이주는 언어이다. – Richard
나는 다른 행동을하기 위해 그것들을 구현하는 사람을 알지 못한다. (복합 할당은 분명히 왼손 피연산자를 변경한다는 것을 제외하고). 하지만 다른 하나없이 구현하는 것은 매우 일반적입니다. iostreams 삽입 연산자. –
운영자는 | = 비트 OR 연산자로 할당을 의미 다른 사람들이이 v1 = v1 | v2;
또 다른 사용을 위해 사용자가 건너 올 수도 부울 함께 짧은 말했듯이
.
을 감안할 때 :
bool b = /*some value*/
대신 말하는 :
if(a)
b = true;
당신이 표시 될 수 있습니다
b |= a;
cond ? x : y
반환 콘드이 사실이고 y
그렇지 x
합니다. 읽기 Ternary Operator
a |= b
는 a | b
a | b
a
하려면 a
및 b
의 bitwise OR입니다 할당되어 a = a | b
의 약어입니다. (예 : 2 | 3 = 3 및 1 | 2 = 3)
2 | 3 = 3, 맞죠? – Cowan
@ 코완 : 감사와 업데이 트되었습니다. –
내가 언급하기 전에 다른 사람들이 언급했듯이, 비트 OR로 과제를 완료하게됩니다.
비트 단위 OR은 왼쪽 및 오른쪽 비트 패턴을 취하여 서로 위에 놓을 수 있습니다.
각 열에서 : 0 + 1은 0, 1은 0, 1은 +1, 1 + 1은 1을 나타냅니다.
부 울린의 컨텍스트에서 : false 또는 false == false, true 또는 false == 참, 거짓 또는 참 == 참, 참 또는 참 == 참.여기
1011 (11) OR 1110 (14) = 1111 (15)
정수가되도록, 이진 표현 될 수
00000000 == 0
00000001 == 1
00000010 == 2
00000011 == 3
00000100 == 4
00001000 == 8
00010000 == 16
비트 단위 OR 비트들의 두 세트 "병합"으로 두 숫자를 조합 : 각 디지트 (비트 스위치)가 1 (ON) 또는 0 (OFF) 인
First number: 00110000
Second number: 00000010
Result: 00110010
입력 숫자 중 하나의 비트가 1이면 결과에서 1이됩니다. 비트가 입력 숫자 모두 1
First number: 00110100
Second number: 10011110
Result: 00010100
경우가있을 것이다 한 결과에서 :
비트의 두 세트의 "중첩"발견 비트 AND와 비교.
숫자가 변수 a와 b에있는 경우, 새 변수 C에 비트 단위는 OR/AND 결과를 배치 할 수 있습니다 :
unsigned int c = a | b; // OR
unsigned int c = a & b; // AND
종종 결과는 두 변수 중 하나에 배치 할 필요를 , 속기로
unsigned int c = a | b; // OR
c = a; // copy
그래서 즉, 단일 단계에서이 작업을 수행 할 수 있습니다
a |= b; // merge b directly into a
는 CS, 그것은라고는 "COM 파운드 할당 ". –
언어를 읽어야합니다. 참고 자료 : – starblue
참고 자료 : Java 제공. 'int var1, var2'. – polygenelubricants