두 문자를 정수로 묶는 코드를 작성했습니다. 10 진수 및 2 진 형식으로 출력되어야합니다.두 문자를 정수로 패킹
코드가 성공적으로 컴파일되었지만 첫 번째 문자 character1
을 입력 한 후 character2
을 입력하라는 메시지가 표시되지 않고 바로 코드 자체가 끝나기 시작합니다. character1
을 입력 한 후 getch()
을 추가했지만 사용하지 않았습니다. 나는 이것에 초보적이다. 어떤 도움이라도 대단히 감사합니다. 미리 감사드립니다.
#include <stdio.h>
void displayInBitFormat(char character);
void packCharacters(char character1, char character2);
char character1, character2;
int main(void){
puts("Enter the first character");
scanf("%c",&character1);
printf("\n%c's bit representation is: \n",character1);
displayInBitFormat(character1);
printf("Enter the second character");
scanf("%c",&character2);
getch(); // TRIED ADDING THIS
printf("\n%c's bit representation is: \n",character2);
displayInBitFormat(character2);
puts("");
packCharacters(character1,character2);
getch();
}
void packCharacters(char character1, char character2){
unsigned c;
c=character1; // assigning first character with unsigned
c=c<<8; // shifting first char to 8 bits left
c=c|character2; //bitwise inclusive OR
printf("After packing characters, Result in binary is: \n");
displayInBitFormat(c);
puts("\nResult in decimal number is: ");
printf("%u", c);
}
//bit representer of an int
void displayInBitFormat(char character){
unsigned int i;//counter
unsigned int displayMask=1<<31;
printf("%10u=",character);
for (i=1;i<=32;++i)
{
putchar(character&displayMask ? '1':'0');
character<<=1;
if (i%8==0){
putchar(' ');
}
}
putchar('\n');
}
여기에 게시 할 때 메모는 이미 코드가 작동하지 않는다고 가정합니다. 질문에 "코드가 작동하지 않습니다"라는 접두사를 사용하지 마십시오. – ScottMcGready
UTF-8 (및 다른 인코딩)에서는 문자가 하나 이상의 단어가 될 수 있습니다. – vonbrand