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

записать по-битого один short int в два char - C++

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ Запрет на добавление записи http://www.cyberforum.ru/cpp-beginners/thread914945.html
Здравствуйте, написал программу, в которой создаётся список с данными про авторов книг. Но у меня возникла проблема - не могу сделать так, чтобы можно было запретить запись авторов и книг в список,...
C++ Закончить определение методов для класса list Доброго времени суток. Изучаю книгу Страуструпа для начинающих, одно из упражнений - завершить определения для класс list, являющегося упрощённым подобием std::list. Код ниже. Помогите, пожалуйста,... http://www.cyberforum.ru/cpp-beginners/thread914932.html
vector и конструторы C++
есть, например, примерно следующий код: #include <stdio.h> #include <conio.h> #include <vector> class CC { int a; public: CC();
C++ Нарушение прав доступа при записи
Пытаюсь написать класс, который бы выполнял инициализацию шрифта в directx и печатал строку на экран. Написал рабочий вариант, где инициализация Direct3D и шрифтов происходит в одном классе,...
C++ Массивы. Переписать элемент из двух в один http://www.cyberforum.ru/cpp-beginners/thread914883.html
const int N=10; int A, B; cout << "введите первый массив" << endl; for (int i(0); i<N; i++) { cout << "первый массив"<<endl; cout << "введите " << i+1 << " элемент массива: ";
C++ загаданное число помогите закончить программу int rNum,x; srand(time(0)); rNum = 1 + rand() % (10); cout << "введите число от 0 до 10 -> "; cin >> x ; if (x == rNum) cout << "вы угадали мое число"; else... подробнее

Показать сообщение отдельно
Evg
Эксперт CАвтор FAQ
18039 / 6271 / 428
Регистрация: 30.03.2009
Сообщений: 17,247
Записей в блоге: 28
01.07.2013, 10:31
Цитата Сообщение от Kuzia domovenok Посмотреть сообщение
для таких случаев существуют union ы
C++
1
2
3
4
5
6
7
union{
  char bytes[2];
  short int data;
}word16;
word16.data=s;
char1=word16.bytes[0];
char2=word16.bytes[1];
Цитата Сообщение от Praktolock Посмотреть сообщение
C++
1
2
3
4
5
6
7
8
char char1, char2;
short int s;
 
char1=*((char*)&s);
char2=*(((char*)&s)+1);
 
*((char*)&s)=char1;
*(((char*)&s)+1)=char2;
мне нравиться с указателями всякие такие штуки проделывать
Эти два кода являются НЕпереносимыми. Они дадут разные результаты на машинах little-endian и big-endian. Бестолковые преподаватели об этом навряд ли задумаются, но для самообразования это знать полезно
1
 
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru