так упаковка значений блин... важно понять, нужно ли потом как-то восстанавливать первоначальные значения, или наоборот упаковать так, чтобы потом невозможно было бы эти 4 дворда восстановить? чего?
тогда можно как угодно делать в принципе... a = 01001100 01000000 01001101 01011100 b = 10100011 01001100 11100110 11101011 c = 11100110 11100110 11100110 11100110 d = 11111101 11111111 01010100 11010101 q = 01001100 01001100 11100110 11010101 01001101 11101011 11100110 11111111 тут выбираются по 16 байт из каждого числа...
Количество комбинаций = (max{a}-min{a}+1)*(max{b}-min{b}+1)*(max{c}-min{c}+1)*(max{d}-min{d}+1) при условии, что a,b,c,d независимы.
Relic Это на x86 слово состоит из 2-х байт, а двойное -> из 4-х байт. Вообще слово - это "минимальная рабочая единица процессора" (Конечно, это не так - есть команды, работающие с одним байтом). Размер слова выбирают производители процессора. Так случилось, что sizeof(word)==2 sizeof(dword)==4, хотя могло быть и другим. Есть предположение что размер слова зависит от разрядности процессора. Если есть комментарии - дайте их.
AndreyMust19 а не максимальная? http://ru.wikipedia.org/wiki/%D0%9C%D0%B0%D1%88%D0%B8%D0%BD%D0%BD%D0%BE%D0%B5_%D1%81%D0%BB%D0%BE%D0%B2%D0%BE