来一简单的先,不好意思,最近特忙,如果没人回我慢慢写给你。public void convert_dest(char[] src,char[] dest)
{
for(int i=0;i<src.length;i=i+2)
{
dest[i+1] = src[i];
dest[i] = src[i+1];
dest[12] = 'F';
}
}
{
for(int i=0;i<src.length;i=i+2)
{
dest[i+1] = src[i];
dest[i] = src[i+1];
dest[12] = 'F';
}
}
{
for(int i=0;i<nSrcLen;i++)
{
Vector bhex;
bhex.add('\0');
System.out.print(bhex+"%02X"+pszSrc.get(i));
pszDest.addAll(bhex);
}
}
{
String strDest = new String(pszDest);
for(int i=0;i<nSrcLen;i++)
{
//用0补两位
String bhex = '0'+pszSrc[i]+"\0";
System.out.print(bhex);
strDest = strDest + bhex;
}
//连接后字符串
pszDest = strDest.toCharArray();
}
String bhex = '0'+pszSrc[i]+"\0";
为什么用0补两位,'0'是"0"吗?"\0"是什么意思啊?
{
int j = 0;
String strSrc = new String(pszSrc);
for(int i=0;i<nSrcLen;i=i+2)
{
int c;
//char bhex[3] = {'\0'};
String strhex;
//memcpy(bhex,pszSrc+i,2);
strhex = strSrc.substring(i,i+3);
//sscanf(bhex,"%2x",&c);
c = (new Integer(strhex)).intValue();
pszDest[j] = (char)c;
j++;
}
}
String bhex = '0'+pszSrc[i]+"\0";
为什么用0补两位,'0'是"0"吗?"\0"是什么意思啊?
回答:
sprintf(bhex,"%02X",*(BYTE*)&pszSrc[i]);
的意思是一个格式化的字符串输出到一个目的字符串中不够两位补零。
不知道理解的对不对?
'0'和"0"在这里一样。
"\0"是字符串截止符,意思是到此字符串结束了。
long UTF16;
UTF16 = un;
if (UTF16 < 0x80) {
out[0] = (char) UTF16;
outlen[0] = 1;
} else
if (UTF16 < 0x800) {
outlen[0] = 2;
out[1] = (char)(0x80 + (UTF16 & 0x3F));
UTF16 = UTF16 / 0x40;
out[0] = (char)(0xC0 + (UTF16 & 0x1F));
} else {
outlen[0] = 3;
out[2] = (char)(0x80 + (UTF16 & 0x3F));
UTF16 = UTF16 / 0x40;
out[1] = (char)(0x80 + (UTF16 & 0x3F));
UTF16 = UTF16 / 0x40;
out[0] = (char)(0xE0 + (UTF16 & 0xF));
}
}
我记得应该是不够两位才补成两位吧?现在你无条件加了两个零好像不太对劲不过有断时间不不写c的程序,记得不是很清楚了。讨论一下,呵呵。
应为:
//用0补两位
String bhex = pszSrc[i]+pszSrc[i+1]+"\0";