2013-08-05 41 views

Trả lời

27

0 là tiền tố cho số bát phân, giống như 0x là tiền tố cho số thập lục phân (và 0b là tiền tố cho số nhị phân, kể từ Java 7).

Vì vậy, 010 có nghĩa là 1 * 81 + 0 * 80, là 8.

2

Số nguyên nằm trong hệ bát phân vì bạn có 0 lúc bắt đầu.

15

Có một cái nhìn tại Java Language Specification, Chapter 3.10.1 Integer Literals

Một số nguyên theo nghĩa đen có thể được thể hiện bằng chữ số thập phân (cơ sở 10), thập lục phân (cơ sở 16), bát phân (cơ sở 8), hoặc nhị phân (cơ sở 2) .

Một số bát phân bao gồm một ASCII chữ số 0 theo sau là một hoặc nhiều của các chữ số ASCII từ 0 đến 7 xen kẽ với dấu gạch dưới, và có thể đại diện cho một số nguyên dương, bằng không, hay tiêu cực.

Đây là lý do tại sao 010 = 8.

0

Sử dụng 0 tiền tố có nghĩa là bạn đang sử dụng số octal.

0

Trong Java và một số ngôn ngữ khác, bắt đầu bằng số nguyên với 0 được hiểu là số bát phân (cơ số 8).

Nếu bạn viết các số có nhiều chữ số quan trọng, bạn có thể bị nhầm lẫn bởi kết quả.

// octal to decimal 
01 == 1 
02 == 2 
07 == 7 
010 == 8 
020 == 16 
024 == 20 

// octal to binary (excluding most significant bit) 
01 == 1 
02 == 10 
07 == 111 
010 == 1000 
020 == 10000 
024 == 10100 
Các vấn đề liên quan