bash为什么认为数字010 = 8?
x=010
echo $x
010
echo $(( x+0 ))
8
echo $(( x-2 ))
6
我认为它可能是二进制的,但是010 = 10 =2。那么为什么它得到8,又如何使它认为010 = 10(和010-2 = 8)?
在许多数字解析器中,
—
德里克·朕会功夫
010
之所以表示8 ,是因为0
在前面加一个表示八进制,类似于0x
在某些语言中表示十六进制。
在编程时,这实际上是一件重要的事情。在大多数语言中,
—
塞斯
0
会触发八进制,0x
十六进制和0b
二进制。
下注的解释?
—
蒂姆(Tim)
@tim为什么会-不-是8?;-)虽然不是我的不赞成,但可能是因为它太基础了。这是很正常的行为。
—
Rinzwind
0
告诉它是八进制的。如果你只是做x=10
然后echo $((x+0))
再表演10
。另外,也不需要$
在中使用()
。