열거 형은 이와 같이 정의되어 있고 거기에 앞에 0을 붙이는 이유를 알 수 없습니다.오픈 소스 코드 (C++)를 읽고 있는데 왜 이런 식으로 열거 형을 넣었는지 알아낼 수 없습니다.
enum SquareDelta {
DELTA_SSW = -021,
DELTA_SS = -020,
DELTA_SSE = -017,
DELTA_SWW = -012,
DELTA_SW = -011,
DELTA_S = -010,
DELTA_SE = -07,
DELTA_SEE = -06,
DELTA_W = -01,
DELTA_ZERO = 0,
DELTA_E = 01,
DELTA_NWW = 06,
DELTA_NW = 07,
DELTA_N = 010,
DELTA_NE = 011,
DELTA_NEE = 012,
DELTA_NNW = 017,
DELTA_NN = 020,
DELTA_NNE = 021
};
나는 이것이 일반적인 int enum이 아니라고 생각한다. "0x"로 시작하는 숫자와 같은 16 진수 일 수 있습니까?
기본 개념은 얼마나 북쪽/남쪽에 있는지 추적 할 수있는 3 비트 (8 진수는 3 비트이고 자릿수와는 무관 함)를 사용하는 것으로 보이고 동쪽/서쪽의 거리를 추적하는 3 비트를 사용하는 것처럼 보입니다 . NNE = N + N + E = 010 + 010 + 001. SWW = S + W + W = -010 + -001 + -001.나는 두 번 칭찬의 부정이 사용법을 더 혼란스럽게 만들었다 고 추측했을 것이다. –
@Mooing Duck : 예 해독 스킬! – orlp
가장 낮은 3 비트는 E/W이지만 다음 3 비트는 N/S에만 모호합니다. –