0x00与0

AIGPTchina 2010-12-20 12:52:43
BYTE tmp;
if((tmp&0x40)==0)

与if((tmp&0x40)==0x00)有什么区别。

tmp是无符号数一个字节。unsigned char
...全文
894 32 打赏 收藏 转发到动态 举报
写回复
用AI写文章
32 条回复
切换为时间正序
请发表友善的回复…
发表回复
jim-single 2011-09-27
  • 打赏
  • 举报
回复
路过, 学习了
freefei 2010-12-23
  • 打赏
  • 举报
回复
[Quote=引用 4 楼 milkylove 的回复:]

事实上没有区别。但if((tmp&0x40)==0x00) 比if((tmp&0x40)==0)更好的体现了一致性
[/Quote]
没区别,看汇编有区别吗,就知道了自己动手丰衣足食
追小虫的蚂蚁 2010-12-22
  • 打赏
  • 举报
回复
用0x好看点??~~~
yskcg 2010-12-22
  • 打赏
  • 举报
回复
没有区别,只是用ox时,可读性要比0 好的多
zhutianjin4355255 2010-12-22
  • 打赏
  • 举报
回复
转化出来的值是一样的,在这边没区别
smad732 2010-12-22
  • 打赏
  • 举报
回复
没区别
wopabe 2010-12-22
  • 打赏
  • 举报
回复
对于0,应该是int型,长度要看你的机器了
而0x00一定是一字节
区别就在这
Shrek_MyCpp 2010-12-22
  • 打赏
  • 举报
回复
是同一个数
Mark0904 2010-12-22
  • 打赏
  • 举报
回复
我觉得没区别。
0x40)==0x00
写成0x00的话就与前面的0x40在格式上统一点,看上去格式也较统一。
sparklxd 2010-12-21
  • 打赏
  • 举报
回复
楼上都说完了,我就来JF的
無_1024 2010-12-21
  • 打赏
  • 举报
回复
0x是十六进制
没说明就是10进制
wizard_tiger 2010-12-21
  • 打赏
  • 举报
回复
0x00表示十六进制的0
00 表示八进制的0
0 表示十进制的0
我学的时候是这样表示的。
luciferisnotsatan 2010-12-20
  • 打赏
  • 举报
回复
0x00就是0
0x 代表16进制
JoeBlackzqq 2010-12-20
  • 打赏
  • 举报
回复
应该是一样的。
失落的凡凡 2010-12-20
  • 打赏
  • 举报
回复
事实上没有区别。但if((tmp&0x40)==0x00) 比if((tmp&0x40)==0)更好的体现了一致性
derest12 2010-12-20
  • 打赏
  • 举报
回复
希望那个有什么高见,我也知道一下,呵呵
jackyjkchen 2010-12-20
  • 打赏
  • 举报
回复
没区别,16进制和10进制而已
derest12 2010-12-20
  • 打赏
  • 举报
回复
我个人觉得哈,在出现的效果都是一样的,没有什么不一样的吧
kent0122 2010-12-20
  • 打赏
  • 举报
回复
[Quote=引用 8 楼 naturemickey 的回复:]
因为BYTE tmp;
所以用0x00表示8位数的0,只是在代码上表示概念上的一致。
实际上在编译后的代码中是没有区别的,因为对于是否为0的判断都只是用一个零标志位而已,而并不把0这个数字编译到代码中。

另外,上面有人说0是十进制的,这个错了,在C99标准中,0是八进制的——楼主可找一下标准文档看一下。
[/Quote]
正解!!!!
flyerwing 2010-12-20
  • 打赏
  • 举报
回复
[Quote=引用 2 楼 jackyjkchen 的回复:]
没区别,16进制和10进制而已
[/Quote]
好象是呀.
加载更多回复(12)

69,369

社区成员

发帖
与我相关
我的任务
社区描述
C语言相关问题讨论
社区管理员
  • C语言
  • 花神庙码农
  • 架构师李肯
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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