如何找到整数的个位数字?

5
假设已经声明了一个 int 变量 x,
写一个表达式,其值是 x 的最后一位数字(即最右边的数字)。
我知道答案是 x%10,但为什么这个表达式可以显示出最右边的数字?

2
分享你的研究可以帮助每个人。告诉我们你尝试过什么以及为什么不符合你的需求。这表明你已经花时间尝试自己解决问题,它可以避免我们重复显而易见的答案,最重要的是它可以帮助你获得更具体和相关的答案。另请参见[ask]。 - gnat
2
这不是一个关于Java的问题,而是一个关于中学数学的问题。 - Giorgio
已删除对Java的引用。该问题与编程语言无关。 - Konrad Morawski
实际上是 x % y,其中 y 是表示 x 的基数。 - Radu Murzea
2
这个问题似乎不适合讨论,因为它不是一个概念性的编程问题。 - Bart van Ingen Schenau
2个回答

19

x % 10 看起来是正确的答案, 但并非如此。

-2 % 10 根据语言/实现/其他因素,可能是-28。 而且两者都不是"最后一位数字"。

因此正确的答案是 abs(x) % 10


11

这是数学

当你使用“%”运算符时,你正在询问“在除以那个数字后余下多少”所以如果我有28 % 10 我的意思是“28除以10的余数是什么”。当然,这会给我8。获取一个数字除以10的余数只留下了个位数(最右边的数字)。

我们使用十进制/基数为10的数字系统。因此,如果您使用10,则始终会得到0-9之间的余数。

在Java中,“%”是余数运算符,并按上述方式工作。

Java操作符概述


通过适当的除法和取模运算符序列,也可以提取任何其他数字。 - Simon B
1
所以,例如x%100会给我最后两位数字,而x%1000会给我最后三位数字。 - user2792396
% 不是模数运算符,它是余数运算符。(http://blogs.msdn.com/b/ericlippert/archive/2011/12/05/what-s-the-difference-remainder-vs-modulus.aspx) - Steven Evers

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接