关于BG2312的问题!请指教!

hewittlh 2006-11-19 02:54:04
#include <stdio.h>

int main()
{
char *temp="刀";
printf("%s\n",temp);
printf("%x",temp[0]);printf("%x",temp[1]);
return 1;
}
“刀”字的GB2312编码是B5B6!
temp[0]存的是B5,
temp[1]存的是B6。
这样子不就是BIG-ENDAIN了吗?
WINDOWS默认不是LITTLE—ENDAIN的吗?
请指教!
我自己总感觉B5是应该放在高字节的才对啊!但现在事实相反?
为什么呢?请指教啊!急!
...全文
131 4 打赏 收藏 转发到动态 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
Squall1009 2006-11-20
  • 打赏
  • 举报
回复
#include <stdio.h>

int main()
{
short s = 258;
char * p = (char *)&s;
printf("%d,%x\n",*p,(void*)p);
printf("%d,%x\n",*(p+1),(void*)(p+1));
system("pause");
return 0;
}


因为你的char *temp="刀";
char 类型只有一个字节;不存在这个问题
LITTLE-ENDAIN或者BIG-ENDAIN好象是和cpu相关的
hewittlh 2006-11-19
  • 打赏
  • 举报
回复
WINDOWS默认不是LITTLE-ENDAIN的吗??
breakout 2006-11-19
  • 打赏
  • 举报
回复
学习 jf
lei001 2006-11-19
  • 打赏
  • 举报
回复
这个应该是认为规定的,

33,311

社区成员

发帖
与我相关
我的任务
社区描述
C/C++ 新手乐园
社区管理员
  • 新手乐园社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧