Форум программистов, компьютерный форум, киберфорум
Наши страницы

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
CarlosA
0 / 0 / 0
Регистрация: 22.01.2013
Сообщений: 2
#1

Битовый сдвиг вправо для дробных чисел - C++

22.01.2013, 23:27. Просмотров 1158. Ответов 2
Метки нет (Все метки)

(Как мне уже известно) битовый сдвиг вправо на одну "ячейку" аналогичен делению на 2.
Например 1/2^3 или 1>>3. Число получается не целым, поэтому кроме как 0 я не получаю ответ. (я понимаю переменная то Int, но с float битовый сдвиг вообще не хочет работать)

Собственно вопрос :
- как получить нормальный ответ?(1>>3)
- как можно реализовать битовый сдвиг числу с плавающей точкой?
0
Лучшие ответы (1)
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
22.01.2013, 23:27
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Битовый сдвиг вправо для дробных чисел (C++):

Битовый сдвиг в if() - C++
Обясните как работает такой код:void swap(int &a, int &b) { int temp = a; a = b; b = temp; } void...

Битовый сдвиг - C++
Вот в чем вопрос: int x = 2; int y; y = (x >> 32); cout << x << " " << y; Должен быть выход 2 0, а на экран...

Битовый сдвиг массива - C++
Помогите разобраться с сдвигом влево (выравниванием до начала байта) данных. Задача заключается в том что есть некий массив, в котором...

Где и когда уместно применять операции << (сдвиг влево) и >> (сдвиг вправо)? - C++
Кто может привести пример , когда нужно использовать операции: 1) &lt;&lt; сдвиг влево 2) &gt;&gt; сдвиг вправо

Подскажите, как сделать сдвиг массива вправо для вставки нового элемента? - C++
// После каждого четного числа добавить число 0. const int n=10; int ar,k=n,t; for(int i=0;i&lt;n;i++){ ar=rand()%10+1; ...

Проверить, как организована память в двумерном массиве. Сделать сдвиг вправо для каждой строчки двумерного мас - C++
Проверить, как организована память в двумерном массиве. Сделать сдвиг вправо для каждой строчки двумерного массива, используя указатели.

2
Croessmah
Ушел
Эксперт CЭксперт С++
13565 / 7716 / 873
Регистрация: 27.09.2012
Сообщений: 18,996
Записей в блоге: 3
Завершенные тесты: 1
22.01.2013, 23:32 #2
Лучший ответ Сообщение было отмечено автором темы, экспертом или модератором как ответ
Цитата Сообщение от CarlosA Посмотреть сообщение
как можно реализовать битовый сдвиг числу с плавающей точкой?
Плавающие числа представляются несколько иначе, чем целочисленные, поэтому такой метод тут не прокатит.
Представление вещественных чисел "на пальцах"
Формат данных с плавающей точкой
1
CarlosA
0 / 0 / 0
Регистрация: 22.01.2013
Сообщений: 2
23.01.2013, 18:39  [ТС] #3
Помогите разобраться
например:
бинарное число 1011.101 / 10 = 101.1101
(десятичное 11.625 / 2 = 5.8125)
Какой операцией, аналогичной битовому сдвигу, я могу перемещать плавающую точку во float или double?(нужно уйти от оператора деления(умножения))
0
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
23.01.2013, 18:39
Привет! Вот еще темы с ответами:

Сдвиг числа вправо - C++
Помогите, мне нужно реализовать машинный алгоритм умножения чисел. Первое число нужно сдвигать постоянно вправо и выводить на экран. Данный...

Сдвиг строки вправо - C++
Нужно написать программу по наследованию которая измеряет длину строки и сдвигает строку в право на один символ. Программа выдает следующую...

Циклический сдвиг вправо - C++
Нужно сделать цеклический сдвиг машинного слова на 1 байт влево, через union и через побитовые операции. Вот так я пишу побитовый сдвиг ...

Циклический сдвиг массива вправо - C++
дан двумерный массив MxN нужно осуществить поэлементный сдвиг вправо на 1 элемент


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
3
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2018, vBulletin Solutions, Inc.