다음 프로그램에서 모든 플랫폼에서 ~ 및 < < 연산이 음수 값으로 수렴됩니까?반복되는 ~ 및 << 연산이 모든 플랫폼에서 음수 값으로 수렴됩니까?
#include <iostream>
int main()
{
int x{};
for(int i{}; i < 32; ++i) {
x = ~x;
x <<= 1;
std::cout << x << '\n';
}
}
왼쪽 교대가 구현 정의되지 않았기 때문에 내 평가가됩니다. int
이 32 비트보다 큰 경우 수렴하지 않는 유일한 시간이라고 말할 수 있습니까?
'내가 {}'무슨 뜻 int이며? 아니면'int x {}'입니까? 어떤 데이터 형식의 기본값 인 서수의 비어있는 초기화 프로그램 목록, vs'= 0'? –
부호가있는 변수의 왼쪽 시프트는 오버플로되면 정의되지 않습니다. – Barmar
@DavidLively int i {}는 값 초기화를 의미합니다. POD 정수의 경우 이는 0으로 초기화됨을 의미합니다. – wally