Ho trovato enum essere definito in questo modo e non riesco a capirlo perché hanno messo lo zero iniziale lì.Sto leggendo il codice open source (C++) e non riesco a capire perché hanno messo enum in questo modo
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
};
Immagino che questo non sia solo normale, ma che cos'è? potrebbe essere in esadecimale come il numero che inizia con "0x"?
Il concetto di base sembra utilizzare tre bit (un ottale è 3 bit, niente a che fare con il numero di cifre) per tenere traccia di quanto lontano nord/sud e tre bit per tenere traccia di quanto lontano est/ovest . NNE = N + N + E = 010 + 010 + 001. SWW = S + W + W = -010 + -001 + -001.Avrei intuito che i negativi a due complimenti rendono l'uso più confuso però. –
@Mooing Duck: Yay capacità di decodifica! – orlp
Indovinate, i 3 bit più bassi sono E/W, ma i 3 bit successivi corrispondono solo vagamente a N/S. –