![]() |
|
|
![]()
|
|
| mr.Anderson |
|
|||
![]() iOS Lead Developer ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 3374 Регистрация: 20.12.2004 Где: далеко Репутация: нет Всего: 128 |
Итак, я пытаюсь в данный момент разобраться с переводом чисел десятичных в числа шестнадцатеричные и двоичные.
Вопрос 1. Я перевел число 17828 в шестнадцатеричный формат. Получилось 45А4. Затем перевел получившееся 45А4 в двоичный формат. Получилось 1001011010100. А затем попробовал перевести десятичное 17828 в двоичный формат. Получилось совсем другое: 11111000101000. Так и должно быть, или я что-то наврал? Вопрос 2. Как переводить числа из двоичной системы в DEC, и как в HEX? Из DEC и HEX в двоичную я перевожу путем "приставки" кодов друг к дружке. Например, код двойки - 10, код нуля - 0, код восьмерки - 1000. Число 208 в двоичном - получаем 10+0+1000 = 1001000. А как назад? |
|||
|
||||
| Mayk |
|
||||
![]() ^аВаТаР^ сообщение>> ![]() ![]() ![]() ![]() Профиль Группа: Участник Сообщений: 2616 Регистрация: 22.5.2005 Где: за границей разум а Репутация: нет Всего: 134 |
Ух, не понял, что подразумевается под переводом - алгоритм перевода из одной сс в другую, или код, чтобы число перевести и распечатать?
Если второе, то вот пара способов по печати hex'а (вход - al принадлежит [0..15], выход al принадлежит ['0'..'9', 'A'..'F']. Остаётся символ напечатать только) 1) Прочитал в книге Зубкова, рулёз.
2)Прочитал в старой спекрутмской книге, автора не помню. Сиим пользуюсь с самого детства
Это сообщение отредактировал(а) Mayk - 25.8.2005, 18:51 -------------------- Здесь был кролик. Но его убили. Человеки < кроликов, йа считаю. |
||||
|
|||||
| mr.Anderson |
|
|||
![]() iOS Lead Developer ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 3374 Регистрация: 20.12.2004 Где: далеко Репутация: нет Всего: 128 |
Нет, я имел в виду именно первую...
|
|||
|
||||
| Mayk |
|
|||
![]() ^аВаТаР^ сообщение>> ![]() ![]() ![]() ![]() Профиль Группа: Участник Сообщений: 2616 Регистрация: 22.5.2005 Где: за границей разум а Репутация: нет Всего: 134 |
-------------------- Здесь был кролик. Но его убили. Человеки < кроликов, йа считаю. |
|||
|
||||
| mr.Anderson |
|
|||
![]() iOS Lead Developer ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 3374 Регистрация: 20.12.2004 Где: далеко Репутация: нет Всего: 128 |
Спасибо за статью, но там я ничего не понял... К тому же, там так и не сказано, как же двоичную систему в десятичную перевести... Мож, вы объясните?
Вот пример: есть число 1001011010100. Опишите пошагово, как его превратить в десятичную... И еще: вы не ответили на вопрос
|
|||
|
||||
| Mayk |
|
||||||
![]() ^аВаТаР^ сообщение>> ![]() ![]() ![]() ![]() Профиль Группа: Участник Сообщений: 2616 Регистрация: 22.5.2005 Где: за границей разум а Репутация: нет Всего: 134 |
вот это верно
А это наврал. Ни одно из чисел не является числом 45a4. 45a4 = 0100.0101.1010.0100 Добавлено @ 20:29
Млин, я заколебаюсь объяснять по этому числу. Короче идея такова - число 10101(для простоты) можно представить как сумму 10000b и 100b и 1b. 100b это тоже самое, что и 2**2 (точно так же как и в десятичной 100 означает то же самое, что и 10**2) . 1.0000b это 2**4, а 1 то же самое что и 2**0. Потом берешь всё это и складываешь - 2**4+2**2+2**0 = 16+4+1=21. Найти учебник по информатике. Там есть такое. -------------------- Здесь был кролик. Но его убили. Человеки < кроликов, йа считаю. |
||||||
|
|||||||
| mr.Anderson |
|
|||
![]() iOS Lead Developer ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 3374 Регистрация: 20.12.2004 Где: далеко Репутация: нет Всего: 128 |
А что такое 2**2? Впервые вижу такую запись...
Что конкретно верно? То, что я перевел число в двоичный формат? Так вы же сами дальше говорите, что это не верно... И потом, почему надо разделять точками? Неужто комп все с точками читает? |
|||
|
||||
| Mayk |
|
||||||||
![]() ^аВаТаР^ сообщение>> ![]() ![]() ![]() ![]() Профиль Группа: Участник Сообщений: 2616 Регистрация: 22.5.2005 Где: за границей разум а Репутация: нет Всего: 134 |
2**2 - 2 в степени 2. 10**2 - десять в степени 2.
Можешь не разделять, но что удобне прочитать - 1.0011.1100.0000.0000.0101 или 100111100000000000101? Первая форма записи для человека ГОРАЗДО удобнее. Имхо. Это сообщение отредактировал(а) Mayk - 26.8.2005, 09:28 -------------------- Здесь был кролик. Но его убили. Человеки < кроликов, йа считаю. |
||||||||
|
|||||||||
| Akina |
|
|||
|
Советчик ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 20581 Регистрация: 8.4.2004 Где: Зеленоград Репутация: 1 Всего: 454 |
sim7
Есть достаточно весомые основания полагать, что у тебя ОС семейства Windows... Запусти Калькулятор. Поставь Инженерный вид. Переводи часла из одной системы в другую и проверяй с помощью Калькулятора.
Это неверно. Проверка - см. выше. Перевод из одной системы в другую производится либо делением, либо умножением на основание одной в другой. -------------------- О(б)суждение моих действий - в соответствующей теме, пожалуйста. Или в РМ. И высшая инстанция - Администрация форума. |
|||
|
||||
| mr.Anderson |
|
||||
![]() iOS Lead Developer ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 3374 Регистрация: 20.12.2004 Где: далеко Репутация: нет Всего: 128 |
Это слишком легко. Я хочу научиться в уме, или, по крайней мере, на бумаге.
Хорошо, давайте попробуем. Переводим число 150 в двоичный формат. Проверьте меня... 150d = ?b 150/2 = 75(0) 0 75/2 = 37(1) 1 37/2 = 18 (1) 1 18/2 = 9 (0) 0 9/2 = 4 (1) 1 4/2 = 2 (0) 0 2/2 = 1 (0) 0 1/2 = 0 (1) 1 150d = 10010110b Получается число 10010110. Так, что ли? А теперь надо 10010110b перевести обратно в десятичный формат. Делаем так? 1*2=2+0=2 2*2=4+0=4 4*2=8+1=9 9*2=18+0=18 18*2=36+1=37 37*2=74+1=75 75*2=150+0=150 10010110b=150d Все ли правильно? Если правильно, то все здорово! |
||||
|
|||||
| Akina |
|
||||
|
Советчик ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 20581 Регистрация: 8.4.2004 Где: Зеленоград Репутация: 1 Всего: 454 |
Начни с единицы и таким способом переводи в бин и обратно, сравнивай конечное с исходным. Совпало - бери следующее число... если числа кончатся и не будет найдено несовпадение - метод верен Обрати внимание: переводя ИЗ системы счисления, ты делил, В систему счисления - множил. Если бы ты переводил 10010110 в десятичную систему, выполняя вычисления в двоичной - ты бы тоже делил.
Итого получается (1) (101) (0), или в десятичной системе все те же 150. -------------------- О(б)суждение моих действий - в соответствующей теме, пожалуйста. Или в РМ. И высшая инстанция - Администрация форума. |
||||
|
|||||
| mr.Anderson |
|
|||
![]() iOS Lead Developer ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 3374 Регистрация: 20.12.2004 Где: далеко Репутация: нет Всего: 128 |
Как это? Когда я переводил 150 в двоичную, я вообще-то делил, а не умножал...
А вообще, я ничего из ваших объяснений не понял. И что за код? Зачем он тут? |
|||
|
||||
| Akina |
|
||||
|
Советчик ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 20581 Регистрация: 8.4.2004 Где: Зеленоград Репутация: 1 Всего: 454 |
Чтобы колоночки были ровные, ё моё...
А я что, что-то другое говорил? Если бы ты выполнял этот перевод в двоичной системе - ты бы множил. А в десятичной - ты делил. -------------------- О(б)суждение моих действий - в соответствующей теме, пожалуйста. Или в РМ. И высшая инстанция - Администрация форума. |
||||
|
|||||
| SergeCpp |
|
|||
![]() ![]() ![]() Профиль Группа: Участник Сообщений: 955 Регистрация: 8.8.2005 Где: At Home Репутация: нет Всего: 124 |
Кнут — Искусство программирования — 2-й том
Там есть всё! |
|||
|
||||
![]()
|
| Правила форума "Asm для начинающих" | |
|
|
Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, MAKCim. |
| 0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | Asm для начинающих | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |