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 朕 會
010
có nghĩa là 8 bởi vì đặt 0
phía trước có nghĩa là bát phân, tương tự như cách đặt 0x
trong 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
0
kích hoạt bát phân, 0x
hex và 0b
nhị 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
0
nói nó là bát phân. Nếu bạn chỉ làmx=10
rồiecho $((x+0))
sau đó chương trình10
. Ngoài ra, không cần thêm$
cho trong()
.