Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2002.10.28;
Скачать: CL | DM;

Вниз

Уважаемые Мастера, очень нужна ваша помощь !!!   Найти похожие ветки 

 
Tornado ©   (2002-10-09 12:49) [0]

Есть у меня такое задание:

Перевести число 175,34 из десятичной системы счисления в двоичную. Погрешность при этом не должна превысить 0,01. Изложить соображения, поясняющие как достигается заданная точность перевода.

Пожалуйста, помогите, я уже замучился, давно с двоичной алгеброй не имел дела. Перевести число - без проблем, но вот что еще нужно: округлить полученное число (10101111,0101011 - вродь правильно перевел) и сделать проверку. У меня есть чужой примерчик, но никак я что-то не разберусь, подкиньте идейку, весь инет излазил. Огромное спасибо заранее.
Вот пример:

Перевести число 127,45 из восьмеричной системы счисления в шестеричную. Погрешность не должна превысить 0,1%.

а) Определим абсолютную максимально допустимую погрешность.
Десятичный эквивалент исходного числа равен
1*64 + 2*8 + 5*1 + 4/8 + 5/64 = 85,578 (с точностью до 0,001)
0,1% от числа 85,578 составляет примерно 0,09 в десятиной системе счисления.
б) Определим количество цифр в дробной части числа в искомой (шестеричной) системе счисления.
Веса соответствующих разрядов дробной части числа:

Номер разряда -1 -2 -3
Вес разряда 1/6 1/36 1/216

Вес единицы разряда -2 не достигает величины 0,03.

Следовательно, для числа в новой системе счисления требуется получить 2 точные цифры после запятой, а для этого надо вычислить три цифры после запятой и округлить полученное значение.

в) Переведем целую часть числа делением на 6.
Делимое Частное Остаток
127 16 3
16 2 2
2 0 2
Целая часть в новой системе счисления равна 223.

г) Переведем дробную часть умножением на 6
Целая часть Дробная часть
0, 45
3, 26
1, 64
4, 70
Дробная часть до округления равна 0,314
д.) Результат (в шестеричной системе счисления):
до округления после округления
223,314 223,32
е.) Проверка.
Для проверки преобразуем число 223,32 в десятичную систему счисления.
Оно равно 2*36 + 2*6 + 2*1 + 3*(1/6) + 2*(1/36) = 85,194 (с точностью до 0,001).

Абсолютная погрешность перевода (85,578 - 85,194) = . . .


 
MBo ©   (2002-10-09 12:59) [1]

для обеспечения точности не хуже 0.01 нужно иметь 7 знаков после запятой в двоичной записи - 1/128


 
Tornado ©   (2002-10-09 13:18) [2]

> MBo © (09.10.02 12:59)

Да, согласен, я так и сделал (правильно?):

Номер разряда -1 -2 -3 -4 -5 -6 -7
Вес разряда 1/2 1/4 1/8 1/16 1/32 1/64 1/128

А как это число округлить и проверить? Сейчас в этом загвоздка. И еще, в примере (см. выше) искался 0,1% от 127,45 (0,09) а потом, когда определили веса пишется:
Вес единицы разряда -2 не достигает величины 0,03. Вот 0,03 - это откуда? Спасибо огромное за ответ


 
Jeer ©   (2002-10-09 13:21) [3]

Tornado © (09.10.02 12:49)
>(10101111,0101011 - вродь правильно перевел)

И перевел неверно
Дробная часть, с учетом поста MBO,
выглядит так
0.34 ~ 0.0101011 == 0.3359375 (e = 0.0041)


 
Jeer ©   (2002-10-09 13:25) [4]

>И перевел неверно
Rollback, сорри

e = x - (A0*2^(-1)+A1*2^(-2)+A2*2^(-3)+...A(n-1)*2^(-n))


 
MBo ©   (2002-10-09 13:29) [5]

Добавлю, что в приведенном примере указана погрешность 0.1 %, т.е. относительная (ошибка/значение), а у тебя в задаче написано просто 0.01, т.е. подразумевается абсолютная погрешность.



Страницы: 1 вся ветка

Текущий архив: 2002.10.28;
Скачать: CL | DM;

Наверх




Память: 0.48 MB
Время: 0.016 c
1-92602
Yuri Btr
2002-10-17 10:38
2002.10.28
Избитый вопрос по CheckBox, RadioButton ещё раз


4-92778
BFG-2000
2002-09-13 11:52
2002.10.28
Как реализовать ButtonClick ?


14-92698
Undert
2002-10-07 23:47
2002.10.28
Не упустите возможность быть в первых номерах .....


1-92472
Serginio
2002-10-17 16:01
2002.10.28
dispinterface в 1С Ole Сервере


6-92633
Виктор Сердюков
2002-08-28 12:16
2002.10.28
SendMessage в COM обьектах !