Mengapa bash berpikir angka 010 = 8?
x=010
echo $x
010
echo $(( x+0 ))
8
echo $(( x-2 ))
6
Saya pikir itu mungkin biner, tetapi 010 = 10 = 2. Jadi mengapa ia mendapatkan 8, dan bagaimana saya bisa membuatnya berpikir 010 = 10 (dan 010 - 2 = 8)?
Dalam banyak angka parser,
—
Derek 朕 會 功夫
010
berarti 8 karena dengan meletakkan 0
di depan berarti oktal, mirip dengan bagaimana menempatkan 0x
dalam beberapa bahasa berarti hex.
Ini sebenarnya hal penting untuk diketahui saat pemrograman. Di sebagian besar bahasa,
—
Seth
0
pemicu oktal, 0x
hex , dan 0b
biner.
Turunkan penjelasan?
—
Tim
@ kadang kenapa -tidak- 8? ;-) Oh bukan downvote saya tapi mungkin karena itu terlalu mendasar. Itu perilaku yang cukup normal.
—
Rinzwind
0
mengatakan itu oktal. Jika Anda hanya melakukanx=10
ituecho $((x+0))
kemudian menunjukkan10
. Juga, tidak perlu untuk tambahan$
dengan di()
.