2012-07-14 7 views

risposta

17

Tutte le lingue moderne importano questa convenzione da C, che l'ha importata da B, che l'ha importata da BCPL.

Tranne BCPL utilizzato #1234 per ottale e #x1234 per esadecimale. B è partito da questa convenzione perché # era un operatore unario in B (intero alla conversione in virgola mobile), quindi # 1234 non poteva essere usato, e # come indicatore di base è stato sostituito con 0.

I progettisti di B provato per rendere la sintassi molto compatta. Immagino che questo sia il motivo per cui non hanno usato un prefisso di due caratteri.

1

"0b" è spesso utilizzato per binario anziché per ottale. Lo "0" iniziale è, sospetto per "O -ctal".

Se sai che stai per analizzare l'ottale, usa parseInt('08', 10); per farlo considerare il numero come base dieci.

+0

Sì, lo so. Mi chiedo solo perché è usato, perché è un po 'di confusione per i principianti. Con '0b' ho commesso un errore, corretto su' 0o'. – Hauleth

+0

"Zero" come in "ottale"? Quasi. La mia ipotesi sarebbe che fosse semplicemente il formato numerico prevalente del giorno, proprio come l'esadecimale è ora. – tripleee

+0

@triplee: Ti rendi conto che 0 sembra un O, giusto? Non è che le persone non abbiano sostituito 13773rs con i numeri per y34rs. –

Problemi correlati