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

Порядок байт в union - C++

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ Программа обучения C++ http://www.cyberforum.ru/cpp-beginners/thread1014124.html
Всем привет! Я хочу изучить c++ самостоятельно, но при этом следовать по какой-то программе обучения. Т.е. по программам обучения как в колледжах. Трудно объяснить :)
C++ как сделать количество элементов в массиве чётным? Чтобы количество элементов в массиве было чётным? http://www.cyberforum.ru/cpp-beginners/thread1014120.html
Написание календаря для любого года C++
#include <math.h> using namespace std; bool vis(int); int day_in_year(int); int day_in_month(int,int); int day_of_year(int,int,int); int day_of_all(int,int,int); int...
Сформировать арифметическую прогрессию C++
Подскажите как сделать задачу. Сформировать арифметическую прогрессию, растущей из 10 элементов: начальное значение - 10, шаг - 2 (использование операции сложения) и вычислить сумму ее элементов....
C++ Выяснить, сколько раз в последовательности встречается максимальное число. Не используя массивы. http://www.cyberforum.ru/cpp-beginners/thread1014070.html
Дана последовательность чисел. Выяснить, сколько раз в ней встречается максимальное число ПОЖАЛУЙСТА,без использования разных массивов,на уровне 7-8 класса!
C++ Передача структуры в функцию структура к примеру: struct GamePoint { int x; int y; }; Функция допустим вот такая: void Func (GamPoint val) { /***/ подробнее

Показать сообщение отдельно
anonymous_
7 / 7 / 1
Регистрация: 21.11.2013
Сообщений: 22

Порядок байт в union - C++

21.11.2013, 12:08. Просмотров 601. Ответов 1
Метки (Все метки)

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
#include <iostream>
using namespace std;
 
void disp_binary(unsigned u);
 
union swap_bytes {
    short int num;
    char ch[2];
};
 
int main()
{   setlocale(LC_ALL,"RUS");
    
    swap_bytes sb;
    char temp;
 
    sb.num = 15; //двоичный код 0000 0000 0000 1111
    
    cout<<"Исходные байты       : ";
    disp_binary(sb.ch[1]);
    cout<< "   ";
    disp_binary(sb.ch[0]);
    cout<< "\n\n";
 
    //Обмен байтов
    temp = sb.ch[0];
    sb.ch[0] = sb.ch[1];
    sb.ch[1] = temp;
 
    cout << "Байты после перестановки: ";
    disp_binary(sb.ch[1]);
    cout << "   ";
    disp_binary(sb.ch[0]);
    cout << "\n\n"; 
    system("PAUSE>>void");
    return 0;
}
///////////////////////////////////////////////
// Функция отображение битов, составляющих байт 
///////////////////////////////////////////////
void disp_binary(unsigned u)
{
    register int t;
 
    for(t=128; t>0; t=t/2)
        if(u & t) cout << "1 ";
    else cout << "0 ";
}

ведь индексация массива идет 0 затем 1 в моем случаи:
short int num занимает 2 байта и char ch[0] 1 байт и char ch[1] 1 байт


Объясните почему sb.ch[1] нуль а в sb.ch[0] 15 почему НЕ НАОБОРОТ???
0
Миниатюры
Порядок байт в union  
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
 
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2018, vBulletin Solutions, Inc.
Рейтинг@Mail.ru