64,682
社区成员
发帖
与我相关
我的任务
分享
#include <iostream>
using namespace std;
void char2Hex( char c )
{
unsigned char n = c;
char ch = n/0x10 + '0'; if( ch > '9' ) ch += ('A'-'9'-1);
char cl = n%0x10 + '0'; if( cl > '9' ) cl += ('A'-'9'-1);
cout << ch << cl << ' ';
}
int main()
{
char str[] = "I love 中国";
for( size_t i=0; i <strlen(str); ++i )
char2Hex( str[i] );
cout << endl;
}
// I l o v e 中 国 ";
//49 20 6C 6F 76 65 20 D6 D0 B9 FA
#include <iostream>
using namespace std;
//也就是将字符的ASCII码对应的10进制数用16进制表示
//由于汉字的一个个字节(汉字由两个字节组成)它的值就有可能大于128,
//所以这这要改为unsigned char,不然中文字符输出为乱码
void char2Hex( unsigned char c )
{
//'0'--'9'可以表示为0--9再加上'0';
//对于大于'9'的字符要用'A'--'F'来表示16进制
//c/0x10取整求前半个字节
char ch = c/0x10 + '0';
if( ch > '9' )
ch += ('A'-'9'-1);
//c%0x10取余求后半个字节
char cl = c%0x10 + '0';
if( cl > '9' )
cl += ('A'-'9'-1);
//输出'0'-'9'和'A'--'F'的字符
cout << ch << cl << ' ';
}
int main()
{
char str[] = "I love 中国";
for( size_t i=0; i <strlen(str); ++i )
char2Hex( str[i] );
char a = 0xD6;
char2Hex(a);//设置断点
cout << endl;
}
#include <iostream>
using namespace std;
//也就是将字符的ASCII码对应的10进制数用16进制表示
//由于汉字的一个个字节(汉字由两个字节组成)它的值就有可能大于128,
//所以这这要改为unsigned char,不然中文字符输出为乱码
void char2Hex( unsigned char c )
{
//'0'--'9'可以表示为0--9再加上'0';
//对于大于'9'的字符要用'A'--'F'来表示16进制
//c/0x10取整求前半个字节
char ch = c/0x10 + '0'; if( ch > '9' ) ch += ('A'-'9'-1);
//c%0x10取余求前半个字节
char cl = c%0x10 + '0'; if( cl > '9' ) cl += ('A'-'9'-1);
//输出'0'-'9'和'A'--'F'的字符
cout << ch << cl << ' ';
}
int main()
{
char str[] = "I love 中国";
for( size_t i=0; i <strlen(str); ++i )
char2Hex( str[i] );
cout << endl;
}
http://203.208.35.101/search?q=cache:8_8C7boAZXQJ:topic.csdn.net/u/20080821/10/321d4e18-bc1f-43cb-a5f6-52c028011076.html+hqin6+csdn+%E5%9B%BD%E6%A0%87%E7%A0%81&hl=zh-CN&ct=clnk&cd=1&gl=cn&st_usg=ALhdy294KNC5Dg3vBO6lcU5t_m21sPjN2w
http://www.hljrstbb.gov.cn/search.htm
这个是查看汉字的区位码:
中的区位码是5448
转换为国标码就是:(区位码(十进制)的两个字节分别转换为十六进制后加20H得到对应的国标码;)
36+20 = 56
30+20 = 50
所以中的国标码是:5650
内码是汉字交换码(国标码)两个字节的最高位分别加1,即汉字交换码(国标码)的两个字节分别加80H得到对应的内码;
56+80 = D6
50+80 = D0
所以中的内码是d0d6
n/0x10->取16进制的第一位
n%0x10取16进制的第二位