2012-07-14 16 views

Odpowiedz

17

Wszystkie współczesne języki importują tę konwencję z C, która zaimportowała ją z B, która zaimportowała ją z BCPL.

Z wyjątkiem BCPL używanego #1234 dla ósemkowego i #x1234 dla heksadecymalnego. B odszedł od tej konwencji, ponieważ # był operatorem jednoargumentowym w B (konwersja liczby całkowitej na zmiennoprzecinkowe), więc nie można było użyć # 1234, a # jako wskaźnik bazowy zastąpiono 0.

Projektanci B próbowali aby składnia była bardzo zwarta. Sądzę, że to jest powód, dla którego nie używali prefiksu dwuznakowego.

1

"0b" jest często używane do binarnego, a nie do ósemkowego. Prowadzące "0" jest, podejrzewam, że "O -ctal".

Jeśli wiesz, że będziesz analizować ósemkowo, użyj parseInt('08', 10);, aby potraktować numer jako dziesiętną.

+0

Tak, wiem. Zastanawiam się tylko, dlaczego jest używany, ponieważ dla początkujących jest to nieco mylące. W '0b' popełniłem błąd, ustaliłem na' 0o'. – Hauleth

+0

"Zero" jak w "ósemkowym"? Ledwie. Moją spekulacją byłoby, że był to po prostu powszechny format liczb dnia, podobnie jak teraz jest hex. – tripleee

+0

@triplee: Zdajesz sobie sprawę, że 0 wygląda jak O, prawda? To nie tak, że ludzie nie zastąpili 13773r liczbami za trzydzieści. –

Powiązane problemy