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

Быстрый перевод байта в вектор битов - C++

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ Почему тормозит играаа??? http://www.cyberforum.ru/cpp-beginners/thread337343.html
Добрый день - решил недавно создать игрушку (третяя на моем счету)... но на этот раз игра не пошаговая - эдакое подобие бомбермена с инвентарем... Можете пожалуйста подсказать по какой причине...
C++ простые функции Всем приветик!!! Есть код: #include<iostream.h> #include<conio.h> #include<string.h> enum Shape{prizm,parallelepiped,cube,pyramid,cone,cylinder}; class Body { http://www.cyberforum.ru/cpp-beginners/thread337334.html
C++ Построить эйлерову цепь в графе.
Всем доброго времени суток! Помогите пожалуйста или подскажите как сделать следующее. Дали задание по дискретной математике построить эйлерову цепь в графе (нужно реализовать все программе, но вот не...
C++ MinGW запрет неявного преобразования типов
Существует ли какой то режим у gcc (MinGW) где бы компилятор "ругался" или хотя бы предупреждал о неявном преобразование типов? Причем не важно: int -> double или double -> int
C++ Помогите написать программку - лотерею http://www.cyberforum.ru/cpp-beginners/thread337273.html
Я сам только окончил первый курс технаря...учусь отлично...решил, что пока каникулы, заняться изучением C++......как-то он меня увлек....вчера в голову пришла идея, написать программку -...
C++ опрератор bool Всем привет!!! Есть код: #include<iostream.h> #include<conio.h> #include<string.h> enum Shape{prizm,parallelepiped,cube,pyramid,cone,cylinder}; class Body подробнее

Показать сообщение отдельно
easybudda
Модератор
Эксперт CЭксперт С++
9632 / 5580 / 948
Регистрация: 25.07.2009
Сообщений: 10,714
31.07.2011, 18:54
Я бы при таком подходе вообще как-то так сделал:
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
#include <stdio.h>
 
unsigned long long uchar2ll(unsigned char uc){
    static unsigned long long tbl[256] = 
    {   0x0ull, 0x1ull, 0x100ull, 0x101ull, 0x10000ull, 0x10001ull, 0x10100ull, 0x10101ull,
        0x1000000ull, 0x1000001ull, 0x1000100ull, 0x1000101ull, 0x1010000ull, 0x1010001ull, 0x1010100ull, 0x1010101ull,
        0x100000000ull, 0x100000001ull, 0x100000100ull, 0x100000101ull, 0x100010000ull, 0x100010001ull, 0x100010100ull, 0x100010101ull
    }; // всю таблицу лень писать
    return tbl[uc];
}
 
// just for show
void dump(const unsigned char * arr){
    int i;
    for ( i = 0; i < 8; ++i )
        printf("%d", arr[i]);
    printf("\n");
}
 
int main(void){
    int val;
    unsigned long long res;
    
    while ( printf("Number from 0 to 255: ") && scanf("%d", &val) == 1 && val > -1 && val < 256 ){
        res = uchar2ll((unsigned char)val);
        dump((unsigned char*)&res);
    }
    
    return 0;
}
Только таблицу соответственно нужно сделать с учётом заморочек с bigendian/littleendian, ну и всю до конца, разумеется...
0
 
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru