2010-04-08 5 views
1

단어에서이 의미는 무엇을 의미합니까?C# UL 및 >> 연산자

(SomeVariable * 330UL >> 10) 

그것은 : 약간의 가변 시간 3.3 시프트 우측 10 비트 ??

+2

왜 디버거를 통해 실행하고 다른 끝이 나오는지 확인하십시오. – ChrisF

+2

@chris, 그 의미에 대해 완전히 공식적인 이론적 이해를하기 전에 코드 실행을 시도하는 것은 나쁘게 보입니다. 이는 개발자가 아닌 코더 (프로토 타입이라고도 함)에게 유용합니다. –

답변

2

우측 - 시프 팅 한 제 이렇게요로 분할하는 것과 2. 2 교대로 나누어 동등하여 적분 값. 그럼 표현식은 다음과 같습니다.

ulong value = ((ulong)SomeVariable * 330)/1024; 
5

그것은 SomeVariable 회 수단 (330)

번호, 롱 촉진 비 주기적 오른쪽 10 비트 시프트.

(주기적이거나 프로모션없이 산술 시프트 됨).

+1

@Pavel Radzivilovsky> UL은 결과가 아닌 330을 홍보합니다. 결과는 길거나'SomeVariable' 타입 중 더 정교한 것입니다. 왜 그것이 주기적이지 않습니까? 나는 이것을 이해하지 못한다. 그것은 데이터 유형 때문이다. 승격 된 타입이 주기적으로 이동하지 않는 언어로 정의되기 때문에; 다른 것? – ANeves

+0

330UL은 프로모션이 아니며 리터럴 유형입니다. 프로모션은 인수 330UL의 유형으로 인해 발생합니다. 이 결과는 부호없는 결과를 만들고 부호없는 피연산자 >>는 비 산술적 인 시프트가됩니다. –

1

UL은 Unsigned Long을 나타냅니다. >> 그렇습니다. 비트 산술 시프트입니다. 부호 길이 변화 등

1

SomeVariable 330 번 오른쪽 10 비트

관련 문제