为什么结果和我想的不一样?

VirusHuo 2001-07-20 05:37:41
char aa[1]={0xaa};
ShowMessage(IntToHex(aa[0],2));

我预想中,应该show出"AA",但是结果却是"FFFFFFAA"这是为什么呢?
谢谢
...全文
155 12 打赏 收藏 转发到动态 举报
写回复
用AI写文章
12 条回复
切换为时间正序
请发表友善的回复…
发表回复
VirusHuo 2001-07-21
  • 打赏
  • 举报
回复
结了。
VirusHuo 2001-07-21
  • 打赏
  • 举报
回复
我靠!
我犯了个弱错误....应该用unsigned char的。多出来的那些F是符号位!不好意思,见笑了。
qiwei 2001-07-21
  • 打赏
  • 举报
回复
恭喜!
VirusHuo 2001-07-21
  • 打赏
  • 举报
回复
这回行了。
VirusHuo 2001-07-21
  • 打赏
  • 举报
回复
谢谢叶老大,
我已经发了3个贴子,没别人说话,我就结不了分。呵呵。
「已注销」 2001-07-21
  • 打赏
  • 举报
回复
捧场

@_@
VirusHuo 2001-07-20
  • 打赏
  • 举报
回复
对,要计算长度。
char的话,sizeof 就是 1,char是 8 bit,当然是1了。
你的意思是,我在内存中存储的,并没有错,是在IntToHex的过程中错的?
wjzhuang 2001-07-20
  • 打赏
  • 举报
回复
IntToHex就是对int类型的数据
sizeof(aa)就是4了。而现在sizeof(aa)是1??
你要考虑大小吗?
VirusHuo 2001-07-20
  • 打赏
  • 举报
回复
有没有人救救我啊~~
VirusHuo 2001-07-20
  • 打赏
  • 举报
回复
to:wjzhuang(笨笨的快手程序猪) 
这样的话,sizeof(aa)就是4了。而现在sizeof(aa)是1。

另: char aa[1]={0x1a};//这样结果就是1a。
只要第一位不是字母,就对。否则就错。
真不明白。
wjzhuang 2001-07-20
  • 打赏
  • 举报
回复
char aa[1]={0xaa};//改成 int aa[1]={0xaa];就可以了
ShowMessage(IntToHex(aa[0],2));

goadengoat 2001-07-20
  • 打赏
  • 举报
回复
好像是按照每四个字节分配地址

13,822

社区成员

发帖
与我相关
我的任务
社区描述
C++ Builder相关内容讨论区
社区管理员
  • 基础类社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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