Войти

Показать полную графическую версию : Подсобите с прогой плз


ApxoH
01-06-2008, 19:55
Такое дело, горит зачёт...
Надо написать прогу на С++...

Деление произвольных двоичных чисел с фиксированной точкой с использованием прямых кодов

Я немогу понять как сделать сдвиг...
Кто может напишите плз и выложите исходник...

Admiral
01-06-2008, 20:07
Я немогу понять как сделать сдвиг... »
...в С) есть так называемые операции сдвига:
вправо (shr) и влево (shl). Для десятичной системы это выглядит так
Код:
3 shl 5 => (3x(2в пятой степени))
5 shr 3 =>(5/(2в третей степени))
На примере двоичной системе становится ясно откуда они получили своё имя
00010101 shl 3 => 10101000
и в другую сторону при shr »

ivank
01-06-2008, 20:29
Конкретно в применении к С/C++ операции сдвига это
a >> b - сдвиг a на b разрядов вправо
a << b - сдвиг a на b разрядов влево.

ApxoH
01-06-2008, 20:35
Да, но там ведь надо, сделать так чтобы перед тем как сдвигать он сравнивал числа... Если неделится то на 2 сдвигать, и сносить дальше..

например

10011 : 11

Должно получиться так
10011
011

Как так сделать я незнаю...

ivank
01-06-2008, 20:42
ApxoH, Есть оператор a % b - остаток от деления a на b. Ещё есть оператор a & b (побитовое "и" а и b). Как это адаптировать к проверке на делимость, надеюсь, догадаетесь.

ApxoH
01-06-2008, 21:09
Фишка в том, что нельзя пользоваться встроеными функциями.. иначе былобы проше...
Я потому и обратился что незнаю как это сделать... Темболее когда мы будем оперировать & то мы будем работать с числом как в десятичной системе.. а надо имено в 2...




© OSzone.net 2001-2012