Я новичок в CS, и я нахожу способ деления на поиск двоичного числа, чтобы быть болью. Можно ли использовать журнал для быстрого поиска 24, например, в двоичном формате?Можно ли использовать логарифмы для преобразования чисел в двоичные?
ответ
Да, вам нужно пройти через 0 -> мощность, которая больше, чем вам нужно, а затем взять остаток и сделать то же самое, что тоже больно.
Я предлагаю вам попробовать рекурсию под названием «Разделить и покорить».
http://web.stanford.edu/class/archive/cs/cs161/cs161.1138/lectures/05/Small05.pdf
Но опять-таки, так как вам нужно бинарное представление, я думаю, если вы не используете готовые утилиты, подход деление является простейшим ИМХО.
С точки зрения CS, двоичный код довольно прост, потому что вам обычно нужно только подняться до 255. Или 15, если использовать нотацию HEX. Чем больше вы его используете, тем легче.
Как я это делаю «на лету», помня все 2 мощности до 128 и включая 1. (Присутствие 1 вместо 1.4xxx возможно означает, что вы не можете использовать журналы).
128,64,32,16,8,4,2,1
Затем я использую правило, что если число больше, чем каждый из власти в порядке убывания, то есть «1», и вычесть его, иначе это «0».
Так 163
163 >= 128 = '1' R 35
35 !>= 64 = '0'
35 >= 32 = '1' R 3
3 !>= 16 = '0'
3 !>= 8 = '0'
3 !>= 4 = '0'
3 >= 2 = '1' R 1
1 >= 1 = '1' R 0
163 = 10100011.
Это может быть не самый изящный способ, но когда вам просто нужно преобразовать что-то одноранговую думать об этом, как сравнение и вычитание может быть проще, чем деление.
Если вы хотите использовать логарифмы, вы можете может.
Определить войти (б) в журнале (б )/журнал (2) или п (б )/п (2) (они одинаковы).
Повторите следующие действия:
Определить п в качестве целой части бревна (б). Существует
1
в nth позиция в двоичном представлении b.Набор б = б - 2 п
Повторите первый шаг до б = 0.
Практический пример: Преобразование 2835 в двоичный
журнал (2835) = 11,47 .. =>п = 11
Двоичный представление имеет 1 в позиции 2 .
2835 - (2 = 2048) = 787
журнал (787) = 9,62 ... =>п = 9
Двоичное представление имеет 1 в позиции 2 .
787 - (2 = 512) = 275
журнал (275) = 8,10 ... =>п = 8
Двоичное представление имеет 1 в позиции 2 .
275 - (2 = 256) = 19
журнал (19) = 4,25 ... =>п = 4
Двоичное представление имеет 1 в позиции 2 .
19 - (2 = 16) = 3
журнал (3) = 1,58 .. =>п = 1
Двоичное представление имеет 1 в 2 позиция.
3 - (2 = 2) = 1
журнал (1) = 0 =>п = 0
Двоичное представление имеет 1 в 2 позиция.
Мы знаем, двоичное представление имеет 1
с в 2 , 2 , 2 , 2 , 2 и 2 позиции:
2^ 11 10 9 8 7 6 5 4 3 2 1 0
binary 1 0 1 1 0 0 0 1 0 0 1 1
поэтому двоичное представление 2835 является 101100010011
.
Я перечитал ваш вопрос и увидел, что вам нужно 24 в двоичном формате. Используя тот же принцип, вы получите 2^4 и 2^3, давая вам 24 = '11000b'. –
Я начал думать об этом сегодня как более быстрый способ конвертировать в двоичный файл. Нашел ваш ответ очень полезным. Рад видеть, что я на правильном пути. – richbai90
- 1. Неожиданные результаты преобразования десятичных чисел в двоичные
- 2. Можно ли использовать преобразования Джексона для XSLT
- 3. Можно ли использовать Augeas для преобразования файлов?
- 4. Неправильная функция для преобразования десятичных чисел в двоичные?
- 5. быстрый способ для десятичного в двоичные преобразования
- 6. Двоичные преобразования WAV в android?
- 7. Преобразование десятичных чисел в двоичные в python
- 8. шестнадцатеричного в двоичные преобразования
- 9. Можно ли использовать координаты преобразования и изображения?
- 10. Можно ли использовать Nashorn для преобразования Java-кода в Javascript?
- 11. Можно ли использовать Джексон для преобразования статического класса в JSON?
- 12. Можно ли использовать egrep для сопоставления чисел в пределах диапазона?
- 13. Двоичные шестнадцатеричном преобразования в TSQL
- 14. Двоичные данные для преобразования строки в строку
- 15. использовать макрос для преобразования формата чисел в текст в Excel
- 16. Можно ли использовать jquery для добавления чисел, взятых из mysql?
- 17. двоичные данные в и из преобразования текста
- 18. Выражение выражения для преобразования чисел
- 19. Двоичные данные строк для преобразования изображений
- 20. сценарий оболочки для преобразования чисел в ASTERISK
- 21. строка для преобразования чисел в golang
- 22. Как вы используете метод возврата для преобразования целых чисел в двоичные числа?
- 23. Преобразование очень больших десятичных чисел в двоичные
- 24. Можно ли отключить обтекание для чисел номерных чисел
- 25. using regexp_replace для преобразования чисел в строки
- 26. Программа для преобразования чисел букв
- 27. Можно ли использовать $ out для временных коллекций?
- 28. ускорение «базового преобразования» для больших целых чисел
- 29. Можно ли использовать код преобразования, связанный с GLSL?
- 30. Можно ли использовать цикл для объявления переменных?
Логарифмы применяются к числам - база, в которой они записаны, не имеет значения (например, 'log (1111b)' = 'log (15)' = 'log (0xF)'). Подумайте, как можно преобразовать произвольное число в десятичное. –