Форум программистов, компьютерный форум, киберфорум
C++
Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ Алгоритм с константной асимптотикой https://www.cyberforum.ru/ cpp/ thread83829.html
Нужно за О(1) давать ответ сколько элементов элементов последовательности установлено в 1 (первоначально - все обнулены), до определенного члена последовательности, также за О(1) нужно устанавливать...
C++ Скины
Как можно создавать скини на свои проги в Borland C++ Builder 6, как на Скриншоти Скриншот
C++ Квадратная страна http://acm.timus.ru/problem.aspx?space=1&num=1073&locale=ru В одном квадратном государстве жили квадратные люди. И всё остальное в этом государстве было тоже квадратное. Так, Квадратная Дума... https://www.cyberforum.ru/ cpp/ thread83668.html C++ Препроцессорные директивы в C/C++ (#include, #define и прочее) https://www.cyberforum.ru/ cpp/ thread83659.html
Статья переехала сюда
C++ Игра Пуговицы.
http://acm.timus.ru/problem.aspx?space=1&num=1023&locale=ru Правила игры очень просты. Перед двумя играющими находится кучка из K пуговиц. Играющие по очереди берут пуговицы из кучки, причем за...
C++ Ассемблерная вставка Товарищи!! кто знает, подскажите как сделать ассемблерную вставку в cи-проекте в среде Turbo C?? я пытался скормить ему asm...,но никак..ошибка( может быть надо тот кусок проги на асм отдельным... https://www.cyberforum.ru/ cpp/ thread83608.html
C++ Step 1: Specify the working directory from which doxygen will run У меня есть файлы написанные на С++ (cpp и h). Все эти файлы я разместила на диске D в одной папке. Нужно получить документацию по каждому файлу. А у меня в результате получается пустой документ. ... https://www.cyberforum.ru/ cpp/ thread83586.html Подскажите C++
Как с помощью 0 канала системного таймера подсчитать время выполнения определенных действий?Может у кого код есть с подобным примером?Спасибо всем ответившим?(среда bc 3.1)
C++ Где используется Tini C Compiler? https://www.cyberforum.ru/ cpp/ thread83159.html
Здравствуйте! Если знаете, напишите пожалуйста примеры использования TCC (или другого интерпретатора си) как интерпретатора? Если не практические, то хотя-бы теоретически, где можно использовать...
C++ Как искать файлы которые создал пользователь? https://www.cyberforum.ru/ cpp/ thread83081.html
Каким методом можно искать файлы которые создал пользователь?
C++ Ошибка генерации CodeBlocks проекта CMake`ом
Пожалуйста, подскажите как правильно сгенерировать CodeBlocks проект с CMake`ом. Опишу по шагам что я делал. 1) В одной папке создал три файла: CMakeLists.txt add_executable(proga main.cpp) ...
C++ Судоку! Почти написал программу для генерирования судоку. Компилируется, работает, однако в 50% случаях генерирует только 3-8 строк и зависает. В остальных случаях генерирует полность, но в квадратах числа... https://www.cyberforum.ru/ cpp/ thread82764.html
Автор FAQ
3684 / 961 / 114
Регистрация: 10.01.2010
Сообщений: 2,550
10.01.2010, 16:15  [ТС] 0

Побитовое копирование double - C++ - Ответ 469818

10.01.2010, 16:15. Показов 5238. Ответов 19
Метки (Все метки)

Ответ

Цитата Сообщение от alex_x_x Посмотреть сообщение
не очень понимаю что за побитовые операции, разместить в определенном порядке, чем memset не подойдет, обращатся можно к отдельным байтам путем приведения к (char*)?
вообщем, что значит побитово считать?
Ну... задумываясь как можно было бы хранить различные данные я подумал о том что bool, char, и все int это простые числа над которыми можно производить побитовую операцию & 1
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
template <class AnyType>
void WriteToDB(AnyType Var){
   unsigned char size = sizeof(Var)*8; получаем размер в БИТах
   unsigned char LastPos = GetCursor(); // последняя позиция в БД
   for (unsigned char CurPos = LastPos; CurPos < (LastPos + size); CurPos++)
   {
       this->DB[CurPos] = Var & 1; // отрываем последний БИТ от Var и записываем его в БД
       Var = Var >> 1; // делаем предпоследний БИТ последним БИТом =)
   }
   SetLink(LastPos, size); // устанавливаем метку где записались данные
}
// Результат работы WriteToDB((unsigned short int)3)
// исходные данные 3 = 0000 0000 0000 0011
// this->DB = { 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 }
// PS. БД bool массив[/B]
а вот double не разрешает над собой творить такого, хотя это глупо все же состоит из битов так или иначе

Добавлено через 1 час 27 минут
Цитата Сообщение от Nick Alte Посмотреть сообщение
Что же касается битовых операций, то можно воспользоваться union:
C++
1
2
3
4
5
6
union BitDouble {
    double dbl;
//    __int64 bits64;                      // Ненужные члены можно просто закомментировать
    unsigned long bits32[2];
    unsigned char bits8[8];
};
union хорош конечно... но тут не сделаешь автоматического выбора куда ему писать. вот если бы можно было
C++
1
BitDouble = 3;
... хотя то что сейчас там тоже все за счет кучи перегрузок делается. Хм... ну ещё минус то что union занимает максимум пространства из возможного

Вернуться к обсуждению:
Побитовое копирование double C++
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
10.01.2010, 16:15
Готовые ответы и решения:

Побитовое копирование рисунка
Есть задание на курсач: Разработать программу, демонстрирующую влияние установленного ...

Работа с пикселями, побитовое копирование
**Задание: Написать программу, осуществляющую побитовое копирование из одного изображения в другое....

Полное (побитовое) копирование объекта одной строчкой кода. не ссылки
Добрый день, подскажите пожалуйста, как быстро и безболезненно можно скопировать значения одного...

Ошибки error C2296: -: недопустимо, левый операнд имеет тип "double (__cdecl *)(double,double,double
Думаю из-за polp #include&lt;iostream&gt; #include&lt;cmath&gt; #include&lt;cstdlib&gt; using namespace std;...

19
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
10.01.2010, 16:15

Помощь в написании контрольных, курсовых и дипломных работ здесь.

Ошибка: error LNK2001: unresolved external symbol "double __cdecl Akk(double,double,double)"
#include &lt;iostream&gt; #include &lt;cmath&gt; using namespace std; double Akk(double x, double y, double...

Ругается на строчку double[] wArray = new double[n];, double[] w = new double[n];
Ругается на строчку double wArray = new double;, double w = new double; Не удаётся преобразовать...

Почему мы пишем double x (double y)? а не через запятую double x,y
почему мы пишем double x (double y)? а не через запятую double x,y

Написать функцию int Search ( double A[], int n , double x), которая находит в массиве double A[n] элемент, значение которого равно x
Написать функцию int Search ( double A, int n , double x), которая находит в массиве double A...

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