change.txt
来自「类型转化包括16进制字符串转化ASCII码,2位16进制字符串转化10进制等」· 文本 代码 · 共 97 行
TXT
97 行
/////////16进制字符串转化ASCII码
CString HextoDec(CString string2)
{
CString chekstr,string16,p;
int aa,bb,cc,i,str16len,n,m=0;
char a[2];
string16=string2;
str16len=string16.GetLength();
for(i=0;i<str16len-1;i=i+2)
{
m=0;n=0;
p=string16.Mid(i,2);
strcpy(a,LPCTSTR(p));
if(a[0]>='0'&&a[0]<='9')
n=n*16+a[0]-'0';
if(a[0]>='a'&&a[0]<='f')
n=n*16+a[0]-'a'+10;
if(a[0]>='A'&&a[0]<='F')
n=n*16+a[0]-'A'+10;
aa = n*16;
if(a[1]>='0'&&a[1]<='9')
m=m*16+a[1]-'0';
if(a[1]>='a'&&a[1]<='f')
m=m*16+a[1]-'a'+10;
if(a[1]>='A'&&a[1]<='F')
m=m*16+a[1]-'A'+10;
bb = m;
cc = aa+bb;
chekstr+=(char)cc;
}
return chekstr;
}
/////2位16进制字符串转化10进制
int deal16to10(CString string16)
{
int n=0,m=0,aa,bb,cc;
char a[2];
CString pstr;
pstr=string16;
strcpy(a,LPCTSTR(pstr));
if(a[0]>='0'&&a[0]<='9')
n=n*16+a[0]-'0';
if(a[0]>='a'&&a[0]<='f')
n=n*16+a[0]-'a'+10;
if(a[0]>='A'&&a[0]<='F')
n=n*16+a[0]-'A'+10;
aa = n*16;
if(a[1]>='0'&&a[1]<='9')
m=m*16+a[1]-'0';
if(a[1]>='a'&&a[1]<='f')
m=m*16+a[1]-'a'+10;
if(a[1]>='A'&&a[1]<='F')
m=m*16+a[1]-'A'+10;
bb = m;
cc = aa+bb;
return cc;
}
//////16进制字符串转化成10进制后计算校验位返回
CString strauto10(CString str16)
{
CString chekstr,string16,p;
int aa,bb,cc,dd=0,i,str16len,n,m=0;
char a[2];
string16=str16;
str16len=str16.GetLength();
for(i=0;i<str16len-1;i=i+2)
{
m=0;n=0;
p=string16.Mid(i,2);
strcpy(a,LPCTSTR(p)); //char *ip = const_cast<char *>((LPCSTR)string16.Mid(i,1));
//char* pC = (char*)(LPCTSTR)string16.Mid(i,1);
if(a[0]>='0'&&a[0]<='9')
n=n*16+a[0]-'0';
if(a[0]>='a'&&a[0]<='f')
n=n*16+a[0]-'a'+10;
if(a[0]>='A'&&a[0]<='F')
n=n*16+a[0]-'A'+10;
aa = n*16;
if(a[1]>='0'&&a[1]<='9')
m=m*16+a[1]-'0';
if(a[1]>='a'&&a[1]<='f')
m=m*16+a[1]-'a'+10;
if(a[1]>='A'&&a[1]<='F')
m=m*16+a[1]-'A'+10;
bb = m;
cc = aa+bb;
dd +=cc;
}
CString strstr,renstr;
strstr.Format(_T("%x"), dd);
int endint;
endint=strstr.GetLength();
renstr=strstr.Mid(endint-2,2);
return renstr;
}
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?