2009-11-14 7 views
6

코드에서 사용 권한 확인을 사용하는 경우가 있습니다. 일부 사용자는 16 진수 0x0001을 사용하고 다른 사용자는 0x00000001을 사용하는 경우가 있습니다. 이 둘은 내가 실수하지 않는다면 둘 다 십진수 1의 동등 물처럼 보입니다.16 진수 0x0001 대 0x00000001

왜 다른 것을 사용하나요?

+5

8 진수를 나타내는 언어에 따라 10 진수 앞에 0을 사용하지 마십시오. '0053 '는'53 '과 같은 수는 필요하지 않습니다. –

답변

12

이것이 C, C++, Java, C# 또는 이와 유사한 것으로 가정하면 동일합니다. 0x0001은 16 비트 값을 의미하지만 0x00000001은 32 비트 값을 의미하지만 실제 단어 길이는 이러한 컴파일러에서 16 진수 리터럴을 계산할 때 컴파일러가 결정합니다. 이것은 코딩 스타일에 대한 질문이지만 컴파일 된 코드에는 아무런 차이가 없습니다.

+0

+1 - 나를 때려 눕히세요. – ChrisF

3

이것은 비트 마스크의 너비에 선행 0을 배치하는 것이 전통적 인 비트 마스크입니다. 나는 또한 좀 더 전문적인 권한을 추가하기 위해 어느 시점에서 변경된 비트 마스크의 너비를 추측 할 것입니다.