为什么 Ruby 中的 032 与 32 不同?
我注意到 Ruby 在使用 032 和 32 时表现不同。我曾经因为代码中使用 032 而不是 32 而出现语法错误。有人可以向我解释一下吗?或者我的代码本身真的有问题吗?
I have noticed Ruby behaves differently when working with 032 and 32. I once got syntax errors for having 032 instead of just 32 in my code. Can someone explain this to me? Or is there something really wrong with my code itself?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(4)
您看到的是
032
是八进制表示形式,而32
是十进制表示形式:并且,为了完整起见,您可能需要处理十六进制:
和二进制:
What you're seeing is
032
is an octal representation, and32
is decimal:And, just for completeness, you might need to deal with hexadecimal:
and binary:
当您的数字前面有一个零时,Ruby 会将其解释为八进制(以 8 为基数的数字)。
你的语法错误可能是这样的:
When you have a zero in front of your number, Ruby interprets it as an octal(base 8 number).
You syntax error is probably something like this:
如果您以 0(零)开头的数字,Ruby 会将其视为八进制,因此您通常不需要零。您必须更具体地了解语法错误。
If you start a number with 0 (zero), ruby treats it as an octal, so you normally don't want the zero. You'll have to be more specific about the syntax error.
我不知道语法错误,但是当你在数字前面加上零时,这意味着它是八进制(以8为底)......所以032实际上是十进制的26
i don't know about syntax errors, but when you prefix a number with zero it means it's octal (base-8)... so 032 is actually 26 in decimal