#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <locale.h>
int
main() {
int
i,v;
char
bs[33];
char
b[33];
char
hs[9];
char
h[9];
char
s[4];
char
*e;
// 十进制整数转二进制串;
i=1024;
ltoa(i,b,2);
sprintf
(bs,
"%032s"
,b);
printf
(
"i=%d,bs=%s\n"
,i,bs);
// 十进制整数转十六进制串;
i=1024;
ltoa(i,h,16);
sprintf
(hs,
"%08s"
,h);
printf
(
"i=%d,hs=%s\n"
,i,hs);
// 十六进制字符串转成十进制数
strcpy
(hs,
"00000400"
);
sscanf
(hs,
"%x"
,&i);
printf
(
"hs=%s,i=%d\n"
,hs,i);
// 二进制字符串转化为十六进制字符串;
strcpy
(bs,
"00000000000000000000010000000000"
);
i=
strtol
(bs,&e,2);
ltoa(i,h,16);
sprintf
(hs,
"%08s"
,h);
printf
(
"bs=%s,hs=%s\n"
,bs,hs);
// 二进制字符串转化为十进制数;
strcpy
(bs,
"00000000000000000000010000000000"
);
i=
strtol
(bs,&e,2);
printf
(
"bs=%s,i=%d\n"
,bs,i);
// 十六进制字符串转成二进制串
strcpy
(hs,
"00000400"
);
sscanf
(hs,
"%x"
,&i);
ltoa(i,b,2);
sprintf
(bs,
"%032s"
,b);
printf
(
"hs=%s,bs=%s\n"
,hs,bs);
// ASC\GBK字符串转十六进制串
strcpy
(s,
"a汉"
);
i=0;
while
(1) {
if
(0==s[i])
break
;
sprintf
(hs+i*2,
"%02X"
,(unsigned
char
)s[i]);
i++;
}
setlocale
(LC_ALL,
"chs"
);
printf
(
"s=%s,hs=%s\n"
,s,hs);
// 十六进制字符串转成汉字(GBK)及字符(ASC)
strcpy
(hs,
"61BABA"
);
i=0;
while
(1) {
if
(1!=
sscanf
(hs+i*2,
"%2x"
,&v))
break
;
s[i]=(
char
)v;
i++;
}
s[i]=0;
printf
(
"hs=%s,s=%s\n"
,hs,s);
return
0;
}
//i=1024,bs=00000000000000000000010000000000
//i=1024,hs=00000400
//hs=00000400,i=1024
//bs=00000000000000000000010000000000,hs=00000400
//bs=00000000000000000000010000000000,i=1024
//hs=00000400,bs=00000000000000000000010000000000
//s=a汉,hs=61BABA
//hs=61BABA,s=a汉
*
void CMFCApplication2Dlg::OnBnClickedButtonDtohex()
{
UpdateData(TRUE);
int num = atoi(m_sInput);
m_sInput.Format("0x%x",num);
UpdateData(FALSE);
}
void CMFCApplication2Dlg::OnBnClickedButtonHextod()
{
UpdateData(TRUE);
m_sInput.MakeLower();
char sz[50]={0};
strcpy(sz,(LPCSTR)m_sInput);
char* p = sz;
int nlen = strlen(p);
WORD dw = * (WORD*)p;
char* p1="0x";
WORD dw1 = *(WORD*)p1;
if (dw==dw1)
{
p+=2;
nlen-=2;
}
int data=0;
int base=1;
char *pend = p+nlen-1;
while (pend>=p)
{
if (*pend>='a')
{
data+= ( (*pend-'a'+10) *base);
}
else
{
data+= ( (*pend-'0') *base);
}
base*=16;
pend--;
}
m_sInput.Format("%d",data);
UpdateData(FALSE);
}
void CMFCApplication2Dlg::OnBnClickedButtonDtob()
{
UpdateData(TRUE);
int num = atoi(m_sInput);
char sz[100]={0};
char sz2[100]={0};
int i=0;
while (num>0)
{
int n = num%2;
//TRACE("%d",n);
if (n==1)
{
sz[i]='1';
}
else
{
sz[i]='0';
}
i++;
num/=2;
}
i--;
for (int j=0;j<=i;j++)
{
sz2[j]=sz[i-j];
}
m_sInput = sz2;
UpdateData(FALSE);
}
void CMFCApplication2Dlg::OnBnClickedButtonBtod()
{
UpdateData(TRUE);
m_sInput.MakeLower();
char sz[100]={0};
strcpy(sz,(LPCSTR)m_sInput);
char* p = sz;
int nlen = strlen(p);
WORD dw = * (WORD*)p;
int data=0;
int base=1;
char *pend = p+nlen-1;
while (pend>=p)
{
data+= ( (*pend-'0') *base);
base*=2;
pend--;
}
m_sInput.Format("%d",data);
UpdateData(FALSE);
}
void CMFCApplication2Dlg::OnBnClickedButtonRgbtoh()
{
UpdateData(TRUE);
m_sInput.MakeLower();
char rgb[3]={0};
char sz[50]={0};
strcpy(sz,(LPCSTR)m_sInput);
char* p = sz;
int nlen = strlen(p);
int i = 0;
char *tokenPtr=strtok(sz,",");
while(tokenPtr!=NULL)
{
//cout<<tokenPtr<<'\n';
rgb[i] = atoi(tokenPtr);
i++;
tokenPtr=strtok(NULL,",");
}
if (i!=3)
{
AfxMessageBox("请输入如:12,255,241");
return;
}
//int aa = RGB(1,2,3);
m_sInput.Format("0x%06x",RGB(rgb[0],rgb[1],rgb[2]));
UpdateData(FALSE);
}
void CMFCApplication2Dlg::OnBnClickedButtonHtorgb()
{
// TODO: 在此添加控件通知处理程序代码
UpdateData(TRUE);
m_sInput.MakeLower();
char sz[50]={0};
strcpy(sz,(LPCSTR)m_sInput);
char* p = sz;
int nlen = strlen(p);
WORD dw = * (WORD*)p;
char* p1="0x";
WORD dw1 = *(WORD*)p1;
if (dw==dw1)
{
p+=2;
nlen-=2;
}
int data=0;
int base=1;
char *pend = p+nlen-1;
while (pend>=p)
{
if (*pend>='a')
{
data+= ( (*pend-'a'+10) *base);
}
else
{
data+= ( (*pend-'0') *base);
}
base*=16;
pend--;
}
//m_sInput.Format("%d",data);
byte*pRgb =(byte*)&data;
m_sInput.Format("%d,%d,%d",pRgb[0],pRgb[1],pRgb[2]);
UpdateData(FALSE);
}
void CMFCApplication2Dlg::OnBnClickedButtonAsciitod()
{
UpdateData(TRUE);
LPCSTR p=(LPCSTR)m_sInput;
m_sInput.Format("%d",*p);
UpdateData(FALSE);
}
void CMFCApplication2Dlg::OnBnClickedButtonDtoasciit()
{
UpdateData(TRUE);
int num = atoi(m_sInput);
m_sInput.Format("%c",num);
UpdateData(FALSE);
}
void CMFCApplication2Dlg::OnBnClickedButtonDwtoip()
{
UpdateData(TRUE);
DWORD dw = atol(m_sInput);
byte ary_by[4]={0};
memcpy(ary_by,&dw,sizeof(byte)*4);
m_sInput.Format("%d.%d.%d.%d",ary_by[0],ary_by[1],ary_by[2],ary_by[3]);
UpdateData(FALSE);
}
void CMFCApplication2Dlg::OnBnClickedButtonIptodw()
{
UpdateData(TRUE);
char sz[50]={0};
strcpy(sz,(LPCSTR)m_sInput);
char* p = sz;
int i = 0;
char *tokenPtr=strtok(p,".");
byte ary_by[4]={0};
while(tokenPtr!=NULL)
{
ary_by[i] = atoi(tokenPtr);
i++;
tokenPtr=strtok(NULL,".");
}
if (i!=4)
{
AfxMessageBox("请输入如:192.168.0.68");
return;
}
DWORD dw;
memcpy(&dw,ary_by,sizeof(ary_by)*4);
m_sInput.Format("%d",dw);
UpdateData(FALSE);
}