Mi sono sempre chiesto perché gli zeri iniziali (0
) sono utilizzati per rappresentare numeri ottali, invece di — per esempio — 0o
. L'utilizzo di 0o
potrebbe essere altrettanto utile, ma non causerebbe il numero di problemi pari a 0
(ad esempio parseInt('08');
in JavaScript). Quali sono le ragioni di questa scelta progettuale?Perché gli zeri iniziali vengono utilizzati per rappresentare i numeri ottali?
risposta
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.
"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.
- 1. Espressione regolare per numeri senza zeri iniziali
- 2. int.Parse() con gli zeri iniziali
- 3. NSString rimuovendo gli zeri iniziali?
- 4. Come ordinare i numeri con zeri iniziali in Java?
- 5. Funzione SQLite per formattare numeri con zeri iniziali?
- 6. Contare gli zeri iniziali in una Int32
- 7. Utilizzo di espressioni regolari per aggiungere gli zeri iniziali
- 8. Perché vengono utilizzati i campi nascosti?
- 9. Perché qui vengono utilizzati i lucchetti?
- 10. Pandas csv-import: mantenere gli zeri iniziali in una colonna
- 11. Gestione dei numeri con zeri iniziali in Tcl
- 12. Come aggiungere gli zeri iniziali per il ciclo in shell?
- 13. Java aggiunge gli zeri iniziali a un numero
- 14. In VHDL ..... come contare gli zeri iniziali del vettore?
- 15. zeri iniziali per galleggiare nelle Swift
- 16. Converti int in esadecimale con gli zeri iniziali
- 17. Converti in binario e mantiene gli zeri iniziali in Python
- 18. Rimuovi/tronca gli zeri iniziali di javascript/jquery
- 19. Rimuovere gli zeri iniziali da una data abbreviata con PHP
- 20. Come posso visualizzare il tempo con gli zeri iniziali?
- 21. comando bash per rimuovere gli zeri iniziali da tutti i nomi di file
- 22. Perché gli identificatori di stringa vengono utilizzati per accedere ai dati delle risorse?
- 23. come concatenare zeri iniziali in excel
- 24. non valido token quando si utilizzano i numeri ottali
- 25. I decimali senza zeri iniziali sono validi JSON?
- 26. Perché i Web Worker non vengono utilizzati di più?
- 27. Perché i punti esclamativi vengono utilizzati nei metodi Ruby?
- 28. Come incrementare un valore con zeri iniziali?
- 29. zeri iniziali e finali da una stringa
- 30. data PHP(): minuti senza zeri iniziali
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
"Zero" come in "ottale"? Quasi. La mia ipotesi sarebbe che fosse semplicemente il formato numerico prevalente del giorno, proprio come l'esadecimale è ora. – tripleee
@triplee: Ti rendi conto che 0 sembra un O, giusto? Non è che le persone non abbiano sostituito 13773rs con i numeri per y34rs. –