Упаковка двух символов в short int - C (СИ)

Узнай цену своей работы

Формулировка задачи:

Всем привет. Написал такую программу:
#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');
}
Вывод : 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 . . . Подскажите пожалуйста, как можно заставить её выводить сразу два символа, не используя двоичное представление переменной?

Решение задачи: «Упаковка двух символов в short int»

textual
Листинг программы
 c1 = num/256;
 c2 = num - 256*с1;

Объяснение кода листинга программы

  1. num - значение переменной, которое будет разделено на 256 и использовано для вычисления значения переменной c1
  2. c1 - переменная, которая будет содержать результат деления num на 256
  3. c2 - переменная, которая будет содержать результат вычитания 256 умноженного на c1 из num
  4. 256 - коэффициент, на который будет умножено значение переменной c1 перед тем как результат будет вычтен из num
  5. Результат вычисления c2 будет содержать два символа, упакованных в short int тип данных

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

12   голосов , оценка 3.667 из 5
Похожие ответы