Преобразования между системами счисления – легко и с улыбкой

Здесь принимаются все самые невообразимые вопросы... Главное - не стесняйтесь. Поверьте, у нас поначалу вопросы были еще глупее :)
Ответить
Первый раз сказал Мяу!
Сообщения: 21
Зарегистрирован: Вт янв 26, 2010 20:03:58
Откуда: Вологда

Сообщение SergeyM »

все равно ничего не понял

0 разряд = 7
1 разряд = 6
2 разряд = 1

Система счисления – десятичная. Значит, ее основание – 10. Возводим 10 в степень, равную номеру каждого разряда и умножаем на то, что получилось значение разряда. Потом все это складываем. Вот так просто!

у меня фигня получилась
2х10(7) + 1х10(6) + 0х10(7) = 20000000+1000000+?=21000000
в общем не то

где я чего не понял?
я только учусь
Реклама
Друг Кота
Аватара пользователя
Сообщения: 3961
Зарегистрирован: Пн июл 13, 2009 14:37:39
Откуда: Московская область, наукоград.....

Сообщение Meteor »

1*10^2+6*10^1+7*10^0=1*100+6*10+7*1=....
Так понятнее?
Последний раз редактировалось Meteor Ср янв 27, 2010 21:18:25, всего редактировалось 1 раз.
Загружая на вход компьютера "мусор", на выходе получим "мусор^32".
PS. Не работаю с: Proteus, Multisim, EWB, Micro-Cap... не спрашивайте даже
Контактная информация:
Реклама
Друг Кота
Сообщения: 4435
Зарегистрирован: Сб мар 07, 2009 20:44:36

Сообщение Arlleex »

тут можно легче. Запомни, что 0 разряд - это разряд единиц, 2 разряд - разряд десяток, третий разряд - разряд сотен и т.д...
Не умеешь - не берись, но не взявшись не научишься...
Первый раз сказал Мяу!
Сообщения: 21
Зарегистрирован: Вт янв 26, 2010 20:03:58
Откуда: Вологда

Сообщение SergeyM »

Meteor писал(а):1*10^2+6*10^1+7*10^0=2*100+6*10+7*1=....
Так понятнее?
2(?) на сотню умножаем? откуда 2? не понял
и все равно не понял где тут двоичная система
где тут 1010... и так далее?
я только учусь
Реклама
Эиком - электронные компоненты и радиодетали
Друг Кота
Аватара пользователя
Сообщения: 3961
Зарегистрирован: Пн июл 13, 2009 14:37:39
Откуда: Московская область, наукоград.....

Сообщение Meteor »

Ошибся, исправляю...
А каким боком двоичная система? Все системы одинаковые, только основания разные. У десятичной основание 10, у двоичной -2, у троичной - 3. В общем случае в системе счисления основание это максимальное число состояний (в десятичной будут числа от 0 до 9) каждого знакоместа (разряда).
Загружая на вход компьютера "мусор", на выходе получим "мусор^32".
PS. Не работаю с: Proteus, Multisim, EWB, Micro-Cap... не спрашивайте даже
Контактная информация:
Реклама
Открыл глаза
Сообщения: 40
Зарегистрирован: Ср окт 28, 2009 17:11:06

Сообщение Дрюня »

Рискну предположить, что, учитывая заголовок темы, автор хочет перевести 167 в двоичную систему счисления.
167/2=83, ост. 1
83/2=41, ост. 1
41/2=20, ост. 1
20/2=10, ост. 0
10/2=5, ост. 0
5/2=2, ост. 1
2/2=1, ост. 0
Результат деления меньше основания системы счисления, алгоритм закончен.
Теперь читаем в таком порядке: последний результат деления (1), и все остатки от предыдущих делений. Читаем снизу вверх, пишем слева направо.
Итого 167(10)=10100111(2)
Если делить на 3 - перевод будет в троичную систему счисления, и так далее.
Вирус - это код, который гуляет сам по себе.
Реклама
Поставщик валерьянки для Кота
Аватара пользователя
Сообщения: 2029
Зарегистрирован: Сб ноя 15, 2008 10:09:56
Откуда: г. Тула

Сообщение IfoR »

Добавлю Дрюня что формально последнюю 1 тоже надо делить, что даст в результате 0 с остатком 1, т.е. делить число пока не получится 0. Ну и затем переписываем остатки с последнего к первому. Этим способом можно перевести десятичную в любую другую систему. Да что там, любую в любую, только делить в двоичной или какой нить другой системе кроме десятичной крайне неудобно. А перевод из любой системы в десятичную уже осуществляется суммой умножений каждого разряда числа на разрядность системы счисления в степени номера позиции числа.
Т.е. есть число в шестнадцатеричной A8,6E переведём в десятичную
A - 1 позиция, 8 - 0 позиция, 6 - -1 позиция, E - -2 позиция
К тому же, A в десятичной - 10, а E - 14, получается:
10*16^1 + 8*16^0 + 6*16^(-1) + 14*16^(-2) = 160 + 8 + 0,375 + 0,0546875 = 168,4296875

Переведём двоичное 11010 в десятичную:
1 - 4, 1 - 3, 0 - 2, 1 - 1, 0 - 0
1*2^4 + 1*2^3 + 0*2^2 + 1*2^1 + 0*2^0 = 16 + 8 + 0 + 2 + 0 = 26

Переведём десятичное 15,25 в двоичную:
Целую и дробную часть переводим отдельно
Целая:
15/2 = 7 ост 1
7/2 = 3 ост 1
3/2 = 1 ост 1
1/1 = 0 ост 1
Получилось 0. Дальнейшее преобразование не имеет смысла, т.к. всегда будет получаться 0

Дробная:
Расписываю принцип. Берём дробную часть и теперь умножаем на основание системы счисления. После каждого умножения записываем что получилось в целой часть, затем отбрасываем целую часть у полученного числа и снова умножаем до тех пор, пока в дробной части не будет 0:
0.25 * 2 = 0.5 - в целой части получилось 0, по этому запишем 0, целую часть отбрасываем.
0.5 * 2 = 1 - в целой часть получилось 1, запишем 1, целую часть отбрасываем.
В получилось 0. Дальнейшее преобразование бессмысленно, т.к. будет получаться 0

Теперь остатки целой части переписываем от последнего к первому, ставим запятую, а дробную часть переписываем в прямом порядке, от первого к последнему.
Получилось: 1111,01

Преобразуем десятеричное 123 в шестнадцатеричную:
123/16=7 ост 11 - т.е. B
7/16=0 ост 7
Перепишем: 7B

Сообсно вот. :)
Изображение
/dev/urandom - гигабайты информации.

OS: openSUSE 13.2 (x86_64)
Контактная информация:
Ответить

Вернуться в «Теория»