Programs
Вариант 6
Главная
Код данной программы предназначен только для VS. В Dev-C она будет работать некорректно из-за затирания переменных.
Здесь ошибка
Код:
#include "stdafx.h" #include void pack() { unsigned long int united = 0; unsigned char s=0, d=0, f=0, b=0; printf_s("Введите код системной области (0-7) или 000: "); scanf_s("%hhd", &s); united = (s & 7) << 13; printf_s("Введите признак грязного буфера (0-1): "); scanf_s("%hhd", &d); united |= (d & 1) << 11; printf_s("Введите признак свободного буфера (0-1): "); scanf_s("%hhd", &f); united |= (f & 1) << 9; printf_s("Введите номер блока (0-255): "); scanf_s("%hhd", &b); united |= b & 0xFF; printf_s("Код-слово: %x\n", united); } void unpack() { int united = 0; unsigned char s = 0, d = 0, f = 0, b = 0; printf_s("Введите код слово: "); scanf_s("%x", &united); s = (united >> 13) & 7; printf_s("Код системной области: %d\n", s); d = (united >> 11) & 1; printf_s("Признак грязного буфера: %d\n", d); f = (united >> 9) & 1; printf_s("Признак свободного буфера: %d\n", f); b = united & 0xFF; printf_s("Номер блока: %d\n",b); } int main() { setlocale(LC_ALL, "Russian"); pack(); unpack(); return 0; }