2014-01-24 3 views
2

Предположим, что переменная INT x, которая уже была объявлена,Как вы находите правую цифру целого числа?

записать выражение, значение которого последний (крайний справа) цифра x.

Я знаю, что ответ x%10, но почему это выражение, которое показывает самую правую цифру?

+2

Разделение вашего исследования помогает всем. Расскажите, что вы пробовали и почему это не соответствовало вашим потребностям. Это демонстрирует, что вы потратили время, чтобы попытаться помочь себе, это избавляет нас от повторения очевидных ответов и, прежде всего, помогает вам получить более конкретный и релевантный ответ. Также см. [Ask] – gnat

+2

Это не вопрос Java, а вопрос о математике средней школы. – Giorgio

+0

Ссылки на Java удалены. Вопрос - язык-агностик. –

ответ

10

Это Math

При использовании оператора «%» вы просите «Что это остаток после деления этого числа» Так что, если у меня есть 28% 10 я говорю «Что есть остаток 28, деленная на 10 ". Это, конечно, дало бы мне 8. Получение оставшейся части числа, деленного на 10, оставляет вас только с одной цифрой (самое большее число).

Мы используем десятичную/базовую систему счисления 10. Поэтому, если вы используете 10, вы всегда будете получать остатки между 0-9.

В Java «%» - оператор останова и работает так, как описано выше.

Summary of Operators in Java

+0

С соответствующей последовательностью операторов divide и modulo можно также извлечь любые другие цифры. –

+1

Итак, если, например, x% 100 дал бы мне последние две цифры, а x% 1000 дал бы мне последние три права. – user2792396

+0

% не является оператором модуля. Это оператор остатка. (Http://blogs.msdn.com/b/ericlippert/archive/2011/12/05/what-s-the-difference-remainder-vs-modulus.aspx) –

14

x % 10 выглядит как правильный ответ. Но нет.

-2 % 10 либо -2, либо 8 в зависимости от языка/реализации/независимо. И ни одна из них не является «последней цифрой».

Правильный ответ abs(x) % 10.

Смежные вопросы