Tại sao bash nghĩ số 010 = 8?
x=010
echo $x
010
echo $(( x+0 ))
8
echo $(( x-2 ))
6
Tôi nghĩ rằng nó có thể là nhị phân, nhưng 010 = 10 = 2. Vậy tại sao nó nhận được 8, và làm thế nào tôi có thể khiến nó nghĩ 010 = 10 (và 010 - 2 = 8)?
Trong nhiều trình phân tích số,
—
Derek 朕 會
010có nghĩa là 8 bởi vì đặt 0phía trước có nghĩa là bát phân, tương tự như cách đặt 0xtrong một số ngôn ngữ có nghĩa là hex.
Đây thực sự là một điều quan trọng cần biết khi lập trình. Trong hầu hết các ngôn ngữ
—
Seth
0kích hoạt bát phân, 0xhex và 0bnhị phân.
Downvote giải thích?
—
Tim
@tim tại sao nó lại - không phải là 8? ;-) Oh không phải downvote của tôi nhưng có lẽ vì nó quá cơ bản. Đó là hành vi khá bình thường.
—
Rinzwind
0nói nó là bát phân. Nếu bạn chỉ làmx=10rồiecho $((x+0))sau đó chương trình10. Ngoài ra, không cần thêm$cho trong().