[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";

아래는
int a=0x12345678;