Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / Java [игнор отключен] [закрыт для гостей] / Побитовый остаток от деления на 10 / 16 сообщений из 16, страница 1 из 1
08.10.2014, 15:04
    #38770505
buldozer01
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Побитовый остаток от деления на 10
Коллеги всем известно что % делит на 10 с остатком

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

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

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

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

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

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

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

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

A mod 10 = A - 10 * A/10

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

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

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

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

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

И вообще чтобы лучше понять что нужно преподу - нужно знать что вы
уже изучали? Что препод любит? В каком виде? И вооб ще короче
телепортируй нам в мозк свой конспект и будет щастье.
...
Рейтинг: 0 / 0
08.10.2014, 20:54
    #38770913
Basil A. Sidorov
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Побитовый остаток от деления на 10
маскировщики хреновы
Код: 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
09.10.2014, 13:07
    #38771585
mayton
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Побитовый остаток от деления на 10
Код: 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
09.10.2014, 13:27
    #38771629
Blazkowicz
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Побитовый остаток от деления на 10
Basil A. Sidorovмаскировщики хреновы
Твоя правда. Можно собрать сумму известного остатка по каждому биту. Но это вряд ли будет быстрее в Java чем реализации остатка на CPU.
...
Рейтинг: 0 / 0
09.10.2014, 13:56
    #38771682
Blazkowicz
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Побитовый остаток от деления на 10
...
Рейтинг: 0 / 0
12.10.2014, 00:28
    #38774169
Usman
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Побитовый остаток от деления на 10
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
Форумы / Java [игнор отключен] [закрыт для гостей] / Побитовый остаток от деления на 10 / 16 сообщений из 16, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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