Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Центр помощи > [C++] Робота з побітовими операціями


Автор: руслан21 22.12.2011, 19:08
. Дан массив целых чисел. Составить функцию unpackChar, которая принимает целую переменную типа unsigned и распаковывает из нее два символа. Про-грамма должна печатать исходные переменные в десятичном и двоичном пред-ставлении, а полученные символы в символьном, десятичном и двоичном пред-ставлении.

#include <iostream>


using namespace std;
 
template<typename T>
void print_bin(T val)
{
        for(int i = (sizeof(T) * 8) - 1; i >= 0; i--)
                cout << ((val >> i) & 1);
}
 
void unpack_chars(unsigned *a, size_t size)
{
        for(int i = 0; i < size; i++)
        {
                char ch[2] = { (char)(a[i] >> 8 & 0xFF), (char)(a[i] & 0xFF)};
                for(int j = 0; j < 2; j++)
                {
                        cout << "Symbol: " << ch[j] << " Dec: ";
                        cout.width(3);
                        cout << (int)ch[j] << " Bin: ";
                        print_bin(ch[j]);
                        cout << endl;
                }
        }
}
 
int main(int argc, char **argv)
{
        const int n = 6;
        unsigned array[n] = { 26725, 27756, 28448, 
                30575, 29292, 25600 };
        
        for(int i = 0; i < n; i++)
        {
                cout << "Dec: " << array[i] << " Bin: ";
                print_bin(array[i]);
                cout << endl;
        }
        cout << "Chars: " << endl;
        unpack_chars(array, n);
        system("pause");
        return EXIT_SUCCESS;
}

Автор: JackYF 22.12.2011, 19:56
Для домашних заданий, курсовых, существует "Центр Помощи".

Тема перенесена! 

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)