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

получить 4бит из байта - C++

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ Найти телефон сотрудника по фамилии и инициалах (работа с файлами С++) http://www.cyberforum.ru/cpp-beginners/thread821588.html
Задан файл, который содержит номера телефонов сотрудников: указывается фамилия и инициалы, номер телефона. Найти телефон сотрудника по его фамилии и инициалах. Как это сделать?
C++ Найти наибольшее положительное целое число n, для которого выполняется условие: условие: Плиз очень надо=) Запрещено размещать тему в нескольких разделах одновременно (кросспостинг), а также дублировать тему в одном разделе. Правила форума http://www.cyberforum.ru/cpp-beginners/thread821577.html
C++ Создание англо-русского словаря
Другу задали курсовой создать англо-русский словарь, реализовал начало через std::set, но есть один нюанс в задании написано "обеспечить возможность хранения нескольких вариантов". Если кто делал...
C++ bad_alloc - проверка нехватки памяти
Добрый вечер. У меня такая проблема - написал конструктор копирования массива деков символов, и решил посмотреть что произойдет, если не хватит памяти. В результате программа радостно падает и...
C++ Подсчет количества слов в строке http://www.cyberforum.ru/cpp-beginners/thread821570.html
Помогите пожалуйста написать программу для подсчета количества слов в строке
C++ Вычислить периметр треугольника Вычислить периметр произвольного треугольника, если известны две его стороны и угол между ними. подробнее

Показать сообщение отдельно
palva
2614 / 1836 / 263
Регистрация: 08.06.2007
Сообщений: 6,995
Записей в блоге: 4
29.03.2013, 00:03
А поля использовать?

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
#include <stdio.h>
 
int main() {
    struct {
        // поля структуры
        union {
            unsigned char i;
            struct {int l:4, h:4;} i4;
        } n;
    } s;
    s.n.i4.l = 7;
    s.n.i4.h = 4;
    printf("%02X\n", s.n.i); // 47
    return 0;
}
Здесь сложно, потому два поля для пробы читаются как один байт.
А если их читать не нужно, то можно обойтись без union:
C++
1
2
3
4
5
6
7
8
9
10
11
12
#include <stdio.h>
 
int main() {
    struct {
        // поля структуры
        int l:4, h:4;
    } s;
    s.l = 7;
    s.h = 4;
    printf("%02X\n", s); // CCCCCC47
    return 0;
}
0
 
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru