>  기사  >  백엔드 개발  >  비트 시프트 계산 결과의 차이

비트 시프트 계산 결과의 차이

WBOY
WBOY앞으로
2024-02-08 21:11:131011검색

비트 시프트 계산 결과의 차이

PHP 편집자 Zimo가 "비트 시프트 계산 결과의 차이"에 대한 기사를 가져왔습니다. 컴퓨터 프로그래밍에서 비트 시프트 연산은 이진수에 대해 왼쪽 또는 오른쪽 시프트 연산을 수행할 수 있는 일반적인 연산입니다. 그러나 프로그래밍 언어마다 변위 작업 결과를 처리하는 데 차이가 있을 수 있으므로 개발자의 주의가 필요합니다. 이 기사에서는 다양한 프로그래밍 언어에서 변위 작업 결과의 차이점을 자세히 소개하고 독자가 변위 작업을 더 잘 이해하고 적용하는 데 도움이 되는 몇 가지 예를 제공합니다. 초보자이든 프로그래밍 기초가 어느 정도 있는 개발자이든 이 기사를 통해 유용한 지식과 기술을 얻을 수 있습니다.

질문 내용

my go 프로그램의 출력, 특히 변수 x1과 x2에 차이가 있습니다. 관련 코드 조각은 다음과 같습니다.

으아악

예상 출력: 10 10

실제 출력: 0 10

차이점의 이유를 궁금해하고 설명을 찾아보세요.

해결 방법

상수 표현식은 지정되지 않은 정밀도로 평가됩니다. x2 的所有内容都是恒定的,因此它可以正确计算 210 / 100 = 1024 / 100 = 10。而在第一个表达式中,1 被视为 byte,这意味着它会立即移出。 1 必须被视为 byte 사양 에 할당됨:

비상수 시프트 표현식의 왼쪽 피연산자가 유형이 지정되지 않은 상수인 경우 먼저 시프트 표현식이 왼쪽 피연산자로만 대체될 때 가정되는 유형으로 암시적으로 변환됩니다.

1은 왼쪽의 유형이 지정되지 않은 상수 nvar 使得表达式变得非常量,因此 1 必须具有其受让人 x1 的类型,即 byte입니다.

위 내용은 비트 시프트 계산 결과의 차이의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
이 기사는 stackoverflow.com에서 복제됩니다. 침해가 있는 경우 admin@php.cn으로 문의하시기 바랍니다. 삭제