Форум: "Потрепаться";
Текущий архив: 2002.10.28;
Скачать: [xml.tar.bz2];
ВнизУважаемые Мастера, очень нужна ваша помощь !!! Найти похожие ветки
← →
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;
Скачать: [xml.tar.bz2];
Память: 0.46 MB
Время: 0.007 c