Siempre me he preguntado por qué los ceros a la izquierda (0
) se usan para representar números octales, en lugar de — por ejemplo — 0o
. El uso de 0o
sería igual de útil, pero no causaría tantos problemas como 0
es líder (por ejemplo, parseInt('08');
en JavaScript). ¿Cuál es la (s) razón (es) detrás de esta elección de diseño?¿Por qué se usan ceros a la izquierda para representar números octales?
10
A
Respuesta
17
Todos los idiomas modernos importan esta convención de C, que la importó de B, que la importó de BCPL.
Excepto que BCPL usó #1234
para octal y #x1234
para hexadecimal. B se ha apartado de esta convención porque # era un operador unario en B (entero a la conversión de coma flotante), por lo que # 1234 no se pudo usar, y # como indicador de base fue reemplazado por 0.
Los diseñadores de B intentaron para hacer la sintaxis muy compacta. Supongo que esta es la razón por la que no usaron un prefijo de dos caracteres.
1
"0b" se utiliza a menudo para binario en lugar de octal. El "0" inicial es, sospecho que para "O -ctal".
Si sabe que va a analizar octal entonces use parseInt('08', 10);
para que se trate el número como base diez.
Cuestiones relacionadas
- 1. Expresión regular para los números sin ceros a la izquierda
- 2. número Display con ceros a la izquierda
- 3. Entero con ceros a la izquierda
- 4. Uso de expresiones regulares para agregar ceros a la izquierda
- 5. Conversión de números octales y hexadecimales a la base 10
- 6. ceros a la izquierda en raíles
- 7. int.Parse() con ceros a la izquierda
- 8. ¿Cómo puedo generar ceros a la izquierda en Ruby?
- 9. no válida de emergencia cuando se utilizan los números octales
- 10. ¿Cómo incrementar un valor con ceros a la izquierda?
- 11. ¿Por qué se usan clases de amigos para la validación?
- 12. contadores css anidadas con ceros a la izquierda
- 13. Ceros a la izquierda en el plugin JQuery Countdown Clock
- 14. Cadena de formato, número entero con ceros a la izquierda
- 15. JSTL relleno int con ceros a la izquierda
- 16. PHP date(): minutos sin ceros a la izquierda
- 17. printf con ceros a la izquierda en C
- 18. Cuente ceros a la izquierda en un Int32
- 19. Mes sin ceros a la izquierda en Android
- 20. ¿Por qué se usan clases estáticas?
- 21. ¿Por qué se usan campos ocultos?
- 22. ¿Cómo se utiliza un manipulador para dar formato a mi producción hexagonal con ceros izquierda acolchados
- 23. ¿Cómo representar los rangos de números regex (por ejemplo, 1 a 12)?
- 24. ¿Por qué se imprime "imprimir" de derecha a izquierda?
- 25. ¿Cómo maneja C Literal enteros con ceros a la izquierda, y qué pasa con atoi?
- 26. Dar formato a un número que contiene un punto decimal con ceros a la izquierda
- 27. ¿Por qué se usan identificadores de cadena para acceder a los datos de recursos?
- 28. ¿Por qué navigationItem.titleView se alinea a la izquierda cuando se llama a showmodalviewcontroller?
- 29. ¿Por qué se usan diferentes delimitadores en la notación porcentual?
- 30. ¿Cómo uso el formato de cadena para mostrar AMBOS ceros a la izquierda y una precisión de 3?
Sí, lo sé. Solo me pregunto por qué se usa, porque es un poco confuso para los novatos. Con '0b' cometí un error, corregido en' 0o'. – Hauleth
"Cero" como en "octal"? Apenas. Mi especulación sería que simplemente era el formato numérico predominante del día, al igual que el hexágono ahora. – tripleee
@triplee: ¿Te das cuenta de que 0 parece una O, ¿verdad? No es como si la gente no hubiera estado reemplazando 13773rs con números para y34rs. –