강좌 & 팁
[Hex 뷰어]
이진(Binary) 데이터를 읽어 hex 형태로 보여주는 C 프로그램
코드는 다음과 같다.
[출력화면]
- 메뉴(Address 부분): 번지는 세로로 16씩 증가(0x0000~0x0060). 가로는 세부 번지에 해당함
- Hex 출력부분: 각 번지별로 1byte씩 출력
- Ascii 출력부분: 문자는 그대로 출력(%c), 특수문자나 Ascii 범위를 벗어난 경우 점(.)으로 출력함
1. PrintHexaNAscii 함수를 구현하시오.
void PrintHexaNAscii(const unsigned char *buffer, int size)
{
int bsize1=7;
int bsize2=16;
unsigned char buffer1[bsize1][bsize2];
int i,j,k;
printf("Address ");
for(i=0;i<16;i++)
{
printf("%02X ",i);
}
for(i=0;i<16;i++)
{
printf("%X",i);
}
printf("\n");
for(j=0;j<size;j++)
{
buffer1[0][j]=(*(buffer+j));
}
for(i=0;i<bsize1;i++)
{
printf("0x%04X ",i*16);
for(k=0;k<bsize2;k++)
{
printf("%02X ",buffer1[i][k]);
}
for(k=0;k<bsize2;k++)
{
if((buffer1[i][k]>32)&&(buffer1[i][k]<127))
{
printf("%c",buffer1[i][k]);
}
else
{
buffer1[i][k]='.';
printf("%c",buffer1[i][k]);
}
}
printf("\n");
}
printf("\n");
}
실행화면
위는
char *b="HELLO WORLD";