Deitel & Deitel, C How to Program 6th Edition, Exercise 10.13 (Packing Characters into an Integer)
// 10.13 (Packing Characters into an Integer)
#include <stdio.h>
int packCharacters(char, char);
void displayBits(int);
int main() {
char letter1, letter2;
unsigned int packed;
printf("Enter first letter: ");
scanf("%c%*c", &letter1);
displayBits(letter1);
printf("Enter second letter: ");
scanf("%c%*c", &letter2);
displayBits(letter2);
packed = packCharacters(letter1, letter2);
printf("Packed:\n");
displayBits(packed);
printf("\n\n\n");
return 0;
}
void displayBits(int num) {
int i, mask = 1;
mask <<= 31;
for (i = 1; i <= 32; i++) {
printf("%d", mask & num ? 1 : 0);
i % 8 ? 0 : printf(" ");
num <<= 1;
}
printf("\n");
}
int packCharacters(char c1, char c2) // packing 2 characters into an integer
{
int num = c1;
num <<= 8;
num |= c2;
return num;
}
OUTPUT
Enter first letter: K
00000000 00000000 00000000 01001011
Enter second letter: L
00000000 00000000 00000000 01001100
Packed:
00000000 00000000 01001011 01001100
Press any key to continue . . .
#include <stdio.h>
int packCharacters(char, char);
void displayBits(int);
int main() {
char letter1, letter2;
unsigned int packed;
printf("Enter first letter: ");
scanf("%c%*c", &letter1);
displayBits(letter1);
printf("Enter second letter: ");
scanf("%c%*c", &letter2);
displayBits(letter2);
packed = packCharacters(letter1, letter2);
printf("Packed:\n");
displayBits(packed);
printf("\n\n\n");
return 0;
}
void displayBits(int num) {
int i, mask = 1;
mask <<= 31;
for (i = 1; i <= 32; i++) {
printf("%d", mask & num ? 1 : 0);
i % 8 ? 0 : printf(" ");
num <<= 1;
}
printf("\n");
}
int packCharacters(char c1, char c2) // packing 2 characters into an integer
{
int num = c1;
num <<= 8;
num |= c2;
return num;
}
OUTPUT
Enter first letter: K
00000000 00000000 00000000 01001011
Enter second letter: L
00000000 00000000 00000000 01001100
Packed:
00000000 00000000 01001011 01001100
Press any key to continue . . .
Let me know in the comments if this page helped you somehow.
It is nice to know if my work helped someone, thanks :)
Comments
Post a Comment