powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Java [игнор отключен] [закрыт для гостей] / Побитовый остаток от деления на 10
16 сообщений из 16, страница 1 из 1
Побитовый остаток от деления на 10
    #38770505
Фотография buldozer01
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Коллеги всем известно что % делит на 10 с остатком

Подскажите плиз - может кто знает алгоритм получения остатка от деления на 10 используя только битовые операции ну и возможно "+" , "-"
...
Рейтинг: 0 / 0
Побитовый остаток от деления на 10
    #38770525
smackmychi
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
buldozer01,

Маска и Логическое И?
...
Рейтинг: 0 / 0
Побитовый остаток от деления на 10
    #38770537
Фотография buldozer01
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Ну например
...
Рейтинг: 0 / 0
Побитовый остаток от деления на 10
    #38770543
Фотография Blazkowicz
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
smackmychiМаска и Логическое И?
+1
Отсекаем не значащие биты и там уже вычисляем остаток любым удобным способом.
...
Рейтинг: 0 / 0
Побитовый остаток от деления на 10
    #38770550
Фотография Blazkowicz
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
buldozer01Ну например
10 dec это 1010 bin. Соответсвенно все старшие биты не значимы. Они отсекаются маской. Если результат <10, то это остаток. Если больше 10, то достаточно произвести вычитание. Можно и без вычитания обойтись и ещё оптимизировать. Но есть ли смысл?
...
Рейтинг: 0 / 0
Побитовый остаток от деления на 10
    #38770568
Фотография buldozer01
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
% будет быстрее ?
...
Рейтинг: 0 / 0
Побитовый остаток от деления на 10
    #38770571
Фотография Blazkowicz
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
buldozer01% будет быстрее ?
А это важно?
...
Рейтинг: 0 / 0
Побитовый остаток от деления на 10
    #38770582
0FD
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
buldozer01,

x&9
...
Рейтинг: 0 / 0
Побитовый остаток от деления на 10
    #38770605
smackmychi
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
buldozer01,

Аахах, тупанул я.

Вообщем, лучше не морочить себе голову. Компиляторы давно уже умные, операции оптимизируют по максимуму.

Здесь суть в чем. У нас 9 это максимальная из единиц. Но она в двоичной записи выглядит как 1001, 8 - 1000. Числа меньшие 8 и большие 0 - от 000 до 111. Поэтому откинуть не получится. Если откидываем 4й бит, то теряем 8ку и 9ку, если они являются остатком.
...
Рейтинг: 0 / 0
Побитовый остаток от деления на 10
    #38770609
0FD
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
0FD,

Вру, позабыл уже, это для 4,8,...
...
Рейтинг: 0 / 0
Побитовый остаток от деления на 10
    #38770691
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
buldozer01Коллеги всем известно что % делит на 10 с остатком

Подскажите плиз - может кто знает алгоритм получения остатка от деления на 10 используя только битовые операции ну и возможно "+" , "-"
Давай вспомним математику.

A mod 10 = A - 10 * A/10

Умножение на битовые операции и сдвиги и сложения расклаядывается прекрасно.

Вычитание - это суть сложение но в МОК или МДК.

Деление... здесь штука похитрее я не помню навскидку двоичный алгоритм деления
но думаю что он не сильно отличается от обыкновенного десятичного.

Кроме того мы можем деление заменить циклом вычитаний делителя и проверками.

Вобщем задача - это конечно онанизм. И думаю что 90% оптимизаций ее решения
зависит от дополнительных условий которые ты здесь не назвал. Особенно
такие твои дополнения как "возможно" путают картину этой лабораторной.

И вообще чтобы лучше понять что нужно преподу - нужно знать что вы
уже изучали? Что препод любит? В каком виде? И вооб ще короче
телепортируй нам в мозк свой конспект и будет щастье.
...
Рейтинг: 0 / 0
Побитовый остаток от деления на 10
    #38770913
Basil A. Sidorov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
маскировщики хреновы
Код: sql
1.
2.
3.
4.
5.
6.
package test;
public class Test {
  public static void main(String[] args) {
    System.out.println(Integer.parseInt(args[0]) & 9);
  }
}


Код: plaintext
1.
java test.Test 10
8
...
Рейтинг: 0 / 0
Побитовый остаток от деления на 10
    #38771585
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Код: java
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
0 & 9 = 0,      0 MOD 10 = 0
1 & 9 = 1,      1 MOD 10 = 1
2 & 9 = 0,      2 MOD 10 = 2
3 & 9 = 1,      3 MOD 10 = 3
4 & 9 = 0,      4 MOD 10 = 4
5 & 9 = 1,      5 MOD 10 = 5
6 & 9 = 0,      6 MOD 10 = 6
7 & 9 = 1,      7 MOD 10 = 7
8 & 9 = 8,      8 MOD 10 = 8
9 & 9 = 9,      9 MOD 10 = 9
10 & 9 = 8,      10 MOD 10 = 0
11 & 9 = 9,      11 MOD 10 = 1
12 & 9 = 8,      12 MOD 10 = 2
13 & 9 = 9,      13 MOD 10 = 3
14 & 9 = 8,      14 MOD 10 = 4
15 & 9 = 9,      15 MOD 10 = 5
16 & 9 = 0,      16 MOD 10 = 6
17 & 9 = 1,      17 MOD 10 = 7
18 & 9 = 0,      18 MOD 10 = 8
19 & 9 = 1,      19 MOD 10 = 9
20 & 9 = 0,      20 MOD 10 = 0
21 & 9 = 1,      21 MOD 10 = 1
22 & 9 = 0,      22 MOD 10 = 2
23 & 9 = 1,      23 MOD 10 = 3
24 & 9 = 8,      24 MOD 10 = 4
25 & 9 = 9,      25 MOD 10 = 5
26 & 9 = 8,      26 MOD 10 = 6
27 & 9 = 9,      27 MOD 10 = 7
28 & 9 = 8,      28 MOD 10 = 8
29 & 9 = 9,      29 MOD 10 = 9
...
Рейтинг: 0 / 0
Побитовый остаток от деления на 10
    #38771629
Фотография Blazkowicz
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Basil A. Sidorovмаскировщики хреновы
Твоя правда. Можно собрать сумму известного остатка по каждому биту. Но это вряд ли будет быстрее в Java чем реализации остатка на CPU.
...
Рейтинг: 0 / 0
Побитовый остаток от деления на 10
    #38771682
Фотография Blazkowicz
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
...
Рейтинг: 0 / 0
Побитовый остаток от деления на 10
    #38774169
Фотография Usman
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
buldozer01,

Код: java
1.
2.
3.
4.
public static int mod10(int x) {
    int d = (int)((x * 1717986919L) >> 34);
    return x - ((d << 3) + (d << 1));
}

P.S.
Задействовано одно умножение
...
Рейтинг: 0 / 0
16 сообщений из 16, страница 1 из 1
Форумы / Java [игнор отключен] [закрыт для гостей] / Побитовый остаток от деления на 10
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]