>  기사  >  C 언어에서 왼쪽 시프트 및 오른쪽 시프트 연산자를 이해하는 방법

C 언어에서 왼쪽 시프트 및 오른쪽 시프트 연산자를 이해하는 방법

清浅
清浅원래의
2019-03-11 17:28:2256402검색

C 언어의 왼쪽 시프트는 왼쪽 시프트 연산자를 의미합니다. 이는 가장 높은 비트를 버리고 가장 낮은 비트를 0으로 채우는 것을 의미하며, C 언어의 오른쪽 시프트는 왼쪽 시프트와 반대되는 오른쪽 시프트 알고리즘입니다. 몇 곳을 옮겨보세요.

C 언어에서 왼쪽 시프트 및 오른쪽 시프트 연산자를 이해하는 방법

C 언어에서 왼쪽 시프트 및 오른쪽 시프트 연산자 사용: 왼쪽 시프트 연산자는 가장 높은 비트를 삭제한 다음 가장 낮은 비트에 0을 추가합니다. 오른쪽 시프트 알고리즘은 왼쪽 시프트와 반대이며 몇 비트를 이동합니다. to the right

C 언어의 왼쪽 시프트 연산자와 오른쪽 시프트 연산자는 C 언어의 연산자입니다. 다음 글에서는 이 두 연산자의 사용법을 자세히 소개하겠습니다. 이는 모두에게 도움이 되기를 바랍니다

【추천 과정: C 언어 튜토리얼

먼저 왼쪽 시프트에 대해 이야기해 보겠습니다. 왼쪽 시프트는 숫자의 모든 비트를 특정 자리만큼 왼쪽으로 이동하는 것을 의미합니다. 839d5890a1dfeede9a3f632a215ba13c>입니다.

오른쪽 시프트의 부호 비트는 왼쪽 시프트와 다릅니다. 부호 비트는 변경되지 않습니다. 예:

int i = 0x80000000;
i = i >> 1;  //i的值不会变成0x40000000,而会变成0xc0000000

즉, 부호 비트가 오른쪽으로 이동한 후 양수에는 0이 추가되고 음수에는 1이 추가됩니다. 이는 어셈블리 언어의 산술 오른쪽 이동입니다. , 이동된 비트 수가 해당 유형의 길이를 초과하면 나머지가 취해진 다음 나머지가 이동됩니다.

负数10100110 >>5(假设字长为8位),则得到的是  11111101

간단히 C에서 왼쪽 시프트는 논리/산술 왼쪽 시프트입니다(둘은 정확히 동일) 및 오른쪽 시프트 부호 비트를 변경하지 않고 유지하는 산술 오른쪽 시프트입니다. 실제 응용 프로그램에서는 왼쪽/오른쪽 시프트를 사용하여 상황에 따라 빠른 곱셈/나눗셈 연산을 수행할 수 있습니다.

반복보다 효율적입니다.

위 내용은 C 언어에서 왼쪽 시프트 및 오른쪽 시프트 연산자를 이해하는 방법의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.