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 朕 會 功夫
010berarti 8 karena dengan meletakkan 0di depan berarti oktal, mirip dengan bagaimana menempatkan 0xdalam beberapa bahasa berarti hex.
Ini sebenarnya hal penting untuk diketahui saat pemrograman. Di sebagian besar bahasa,
—
Seth
0pemicu oktal, 0xhex , dan 0bbiner.
Turunkan penjelasan?
—
Tim
@ kadang kenapa -tidak- 8? ;-) Oh bukan downvote saya tapi mungkin karena itu terlalu mendasar. Itu perilaku yang cukup normal.
—
Rinzwind
0mengatakan itu oktal. Jika Anda hanya melakukanx=10ituecho $((x+0))kemudian menunjukkan10. Juga, tidak perlu untuk tambahan$dengan di().