현재 위치는 - 분류정보망 - 부동산 지식 - C 언어에서 정수 오버플로란 무엇인가요? 비트 연산자와 시프트 연산자란 무엇입니까?

C 언어에서 정수 오버플로란 무엇인가요? 비트 연산자와 시프트 연산자란 무엇입니까?

오버플로에 대해서는 위의 답변으로 충분합니다. 다른 컴퓨터가 차지하는 비트 너비(다른 비트 너비)도 다르다는 점을 추가하겠습니다. 반드시 32개 모두는 아닙니다.

또한 오버플로에 관해:

내 공간에 이제 4개의 이진수만 있는 경우(다음 보완 및 기호는 고려되지 않으며 동일하게 작동합니다)

즉, 0000부터 1111까지(즉, 0~15)까지의 데이터만 표현할 수 있다는 것입니다.

1111과 같은 데이터를 저장했는데 시스템에서 1을 주려고 한다면, 1111 1=gt; 10000 이때 저장이 불가능하면 최상위 비트는 버려지게 되며, 16을 표시해야 할 때에는 0이 됩니다. 이때 오버플로가 발생했다고 합니다. 32비트, 즉 32개의 1도 마찬가지고, 그러면 1은 0이 됩니다.

비트 연산자는 데이터의 바이너리 형태로 각 비트를 따로 연산하는 것인데, 사용하는 연산자를 비트 연산자라고 합니다.(조직적 언어능력이 좀 떨어지는데... 예를 들어보겠습니다~~ )

우선 방금 데이터 1111B(즉, 15, B가 무엇인지 아시죠...) if 및 1010B(즉, 10)와 연산(AND 또는 non... amp; || !) 그런 다음 결과는 true의 Bool 값이어야 합니다(0이 아닌 경우 true를 의미함...).

비트 AND 연산(amp;)에 1111B와 1010B를 사용하면 결과는 1이 아닌 1010이 되어야 합니다. 이것이 비트 연산입니다..

시프트 연산자

p >

그냥 변하는 것뿐인데.. gt .