Вы не зашли.
Главная » Общение » Перевод десятичной дроби в двоичную систему счисления
#1. Nu3oN Off (11)
Moderator
2011.04.05 23:11
На висах спрашивал, что-то ответа не получил! а еще некоторые себя программистами считают))
Гемор, думаю ты должен это знатьsmile Собственно сабж:
Нужно перевести десятичную дробь например(0,65), в двоичную систему счисления!
На примере дроби 0,75 все выходит просто:
0,75 *2 = 1,50 * 2 = 3,00 в итоге получаем 0,11 - получили единицу, и на этом останавливаемся!
а в примере 0,65 уже сложнее... тут мы получаем бесконечный цикл, который может продолжаться бесконечно!
Как понять что мы получили необходимую точность вычислений?
Добавлено спустя   9 минут  14 секунд:
т.е получается 0,65*2 = 1,30 * 2 = 0,60 * 2 = 1,22 * 2 = 0,44 * 2 = 0,88 и тут начинается цикл! т.е
1,76 -> 1,52 -> 1,04 -> 0,08 -> 0,16 -> 0,32 -> 0,64 -> 1,28 -> 0,46 -> 0,72 -> 1,44 и опять получается 0,88
Я буду лучше голоден, но между креслом и рулем и на дороге.
#2. Nu3oN Off (11)
Moderator
2011.04.06 00:12
и еще из десятичной в двоичную что - то не получается!
101101 = 1*2^0 + 0*2^1 + 1*2^2 + 1*2^3 + 0*2^4 + 1*2^5 = 0 + 2 + 4 + 8 + 32 = 46
проверяем
46/2 = 23 -> 46 - 46 = 0
23/2 = 11 -> 23 - 22 = 1
11/2 = 5 -> 11 - 10 = 1
5/2 = 2 -> 5 - 4 = 1
2/2 = 1 -> 2 - 2 = 0
1
и получается 101110 совсем другое число! и как так получилось что на 1 больше?
Я буду лучше голоден, но между креслом и рулем и на дороге.
#3. Nu3oN Off (11)
Moderator
2011.04.06 01:01
Nu3oN написал:
и еще из десятичной в двоичную что - то не получается!
101101 = 1*2^0 + 0*2^1 + 1*2^2 + 1*2^3 + 0*2^4 + 1*2^5 = 0 + 2 + 4 + 8 + 32 = 46
проверяем
46/2 = 23 -> 46 - 46 = 0
23/2 = 11 -> 23 - 22 = 1
11/2 = 5 -> 11 - 10 = 1
5/2 = 2 -> 5 - 4 = 1
2/2 = 1 -> 2 - 2 = 0
1
и получается 101110 совсем другое число! и как так получилось что на 1 больше?
С этим разобрался, мой косяк!
тут идет
101101 = 1*2^0 + 0*2^1 + 1*2^2 + 1*2^3 + 0*2^4 + 1*2^5 = 1 + 0 + 4 + 8 + 32 = 45
Я буду лучше голоден, но между креслом и рулем и на дороге.
#4. Gemorroj Off (107)
Administrator
2011.04.06 10:10
echo base_convert('0.65', 10, 2); // 1000001
#5. Nu3oN Off (11)
Moderator
2011.04.06 17:05
Эмммм... я так ученикам и расскажу!
И про PHP и про base_convert() big_smile
Я буду лучше голоден, но между креслом и рулем и на дороге.
#6. Nu3oN Off (11)
Moderator
2011.04.06 22:10
Плюс ко всему base_convert() не знает дробей)
Я буду лучше голоден, но между креслом и рулем и на дороге.
Страниц: 1
Главная
WEB
PunBB Mod v0.6.2
0.014 s