| Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
| Форум программистов > Центр помощи > [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 |
| Для домашних заданий, курсовых, существует "Центр Помощи". Тема перенесена! |