Упаковка двух символов в short int - C (СИ)
Формулировка задачи:
Всем привет. Написал такую программу:
Вывод :
Enter first character: a
Enter second character: b
Result is b
Result in binary notation is
0110 0001 0110 0010
Press any key to continue . . .
Подскажите пожалуйста, как можно заставить её выводить сразу два символа, не используя двоичное представление переменной?
#include<stdio.h> #include<stdlib.h> void packCharacters(char, char); void printBit(int); main() { char char1, char2; printf("Enter first character: "); scanf("%c", &char1); fflush(stdin); printf("Enter second character: "); scanf("%c", &char2); packCharacters(char1, char2); system("pause"); } void packCharacters(char char1, char char2) { unsigned short int result; result = char1; printBit(result); result <<= 8; printBit(result); result |= char2; printf("Result is %c\n", result); printf("Result in binary notation is\n"); printBit(result); putchar('\n'); } void printBit(int num) { int i, mask = 1 << 15; for(i = 1; i <= 16; i++) { putchar(num & mask ? '1' : '0'); num <<= 1; if(i % 4 == 0) putchar(' '); } putchar('\n'); }
Решение задачи: «Упаковка двух символов в short int»
textual
Листинг программы
c1 = num/256; c2 = num - 256*с1;
Объяснение кода листинга программы
num
- значение переменной, которое будет разделено на 256 и использовано для вычисления значения переменнойc1
c1
- переменная, которая будет содержать результат деленияnum
на 256c2
- переменная, которая будет содержать результат вычитания 256 умноженного наc1
изnum
- 256 - коэффициент, на который будет умножено значение переменной
c1
перед тем как результат будет вычтен изnum
- Результат вычисления
c2
будет содержать два символа, упакованных в short int тип данных
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д