본문 바로가기
프로그래밍/MFC

MFC 타입 변환(Hex to ASCII)

by 완소루피 2020. 11. 2.
728x90
반응형

//Hex 값을 입력하면 ASCII 값으로출력

CString outbuf="6372";
 CString temp,output;
 temp = outbuf;
 int len=temp.GetLength();
 for(int i=0; i<len/2; i=i++){
  char str[3];
  int num=0;
  strcpy_s(str, temp.Mid(i*2,2));
  num=(int)strtol(_strupr(str),NULL,16); //Hex String toInt
  //output.Format("%d ",num);
  output+=(char)num;
 }
 outbuf=(LPCTSTR)output;

 

//Hex 값을 입력하면 10 진수 값으로 출력

CString temp,output;
 temp = "FFFF";
 int len=temp.GetLength();
 
  char str[5];
  
  strcpy_s(str, temp);
  int num;
  num=(int)strtol(str,NULL,16); //Hex String to Int
  output.Format("%d ",num);

 

//OnReceive 함수 구현

LRESULT CSerialTestDlg::OnReceive(WPARAM length, LPARAM lpara)
{
 CString str;
 char data[20000];
 str = "";
 if(m_Comm)
 {
  m_Comm->Receive(data,length);
  data[length]='\0';
  CString temp="";
  for(int i = 0;i<(int)length;i++)
  {
   //if(data[i] != ' '){
   // temp.Format("%02X", data[i]);
    str += data[i];
   //}
  }
  CString output="";
  char cStr[2];
  for(int i= 0; i<sizeof(str)-1; i++){
   strcpy_s(cStr, str.Mid(i,1));
   temp.Format("%02X", cStr[0]);
   output += temp;
  }
  
  m_RcvData.ReplaceSel(output+"\n");
 } 
 return 0;
}

 

//10진수 값을 입력하면 Hex 값으로 출력

long val = 255;   // 또는 val=255 + 0x0;
CString output;
output.Format("%X",val);
//output = "FF";

 

//음수값 표현

long val = 255;
val = 0x0 - val - 0x01;
CString output;
output.Format("%X",val);
//output = "FFFFFF00";
728x90
반응형

'프로그래밍 > MFC' 카테고리의 다른 글

MFC 비트맵 이미지  (0) 2020.11.02
MFC 그리기 모드  (0) 2020.11.02
MFC 현재 사용중인 IP 가져오기  (0) 2020.11.02
MFC 유니코드 ASCII 변환  (0) 2020.11.02
MFC 멀티바이트 To 유니코드  (0) 2020.11.02