Bash neden 010 = 8 sayısını düşünüyor?
x=010
echo $x
010
echo $(( x+0 ))
8
echo $(( x-2 ))
6
İkili olabileceğini düşündüm, ama 010 = 10 = 2. Öyleyse neden 8 oluyor ve nasıl 010 = 10 (ve 010 - 2 = 8) düşündürüyor?
Birçok sayı ayrıştırıcısında,
—
Derek 朕 會 功夫
0108 anlamına gelir , çünkü 0ön tarafa koyarak 0x, bazı dillerde yazmanın nasıl hex olduğu gibi sekizli anlamına gelir.
Bu aslında programlama sırasında bilinmesi gereken önemli bir şeydir. Çoğu dilde
—
Seth
0sekizlik, 0xonaltılık ve 0bikilik tetikler .
Downvote açıklamaları?
—
Tim
@tim neden 8 değil? ;-) Oh olsa benim downvote değil ama muhtemelen çok temel olduğu için. Oldukça normal bir davranış.
—
Rinzwind
0ona sekizli olduğunu söyler. Sadece yaparsanızx=10oecho $((x+0))zaman gösterir10. Ayrıca,$ile ekstra gerek yoktur().