专注收集记录技术开发学习笔记、技术难点、解决方案
网站信息搜索 >> 请输入关键词:
您当前的位置: 首页 > C++

"0x00000020"是什么意思?该如何解决

发布时间:2011-06-28 23:41:16 文章来源:www.iduyao.cn 采编人员:星星草
"0x00000020"是什么意思?
有一个头文件中,定义有如下的两个宏
#define   EXT_INDEXER_OUTFILE_INDEXER   0x00020000
#define   EXT_INDEXER_SYNERGY_OUTPUT   0x00000020
在另外一个文件中,有如下语句:
int   ix_mode   =   EXT_INDEXER_OUTFILE_INDEXER   |   EXT_INDEXER_SYNERGY_OUTPUT   ;

请问
1.   0x00020000   到底是什么?   是16位数吗?   如果是,那为什么不直接写成0x20000?   如果不是,那它是什么?

2.   下面的语句是什么结果?   |   是什么意思?   位运算?    
int   ix_mode   =   EXT_INDEXER_OUTFILE_INDEXER   |   EXT_INDEXER_SYNERGY_OUTPUT   ;

3.   通常大家会在什么时候用到这样的程序?   我指如下程序:

#define   EXT_INDEXER_OUTFILE_INDEXER   0x00020000
#define   EXT_INDEXER_SYNERGY_OUTPUT   0x00000020
int   ix_mode   =   EXT_INDEXER_OUTFILE_INDEXER   |   EXT_INDEXER_SYNERGY_OUTPUT   ;

------解决方案--------------------
需设置多个模式的时候,而有想不浪费空间,所以用位运算
------解决方案--------------------
0x00020000

因为 一个整数, int 或者 long 在 32位平台下,
默认是 4 字节的, 所以写成0x00020000 形式,
高位的 0 也可以不要的,
直接写成0x20000 效果一样, 但是看起来就不一样了(几个字节就需要数一下)
------解决方案--------------------
1.是16进制数.之所以要这么写,估计是该程序运行在32位机器上,刚好能表示8位16进制数.
2.是或的结果,位运算.0x00020020
3.通常会在定义常量时,用不着满天去寻找我在程序中哪里用过0x00020000.
------解决方案--------------------
1. 0x00020000 到底是什么? 是16位数吗? 如果是,那为什么不直接写成0x20000? 如果不是,那它是什么?
答:0x00020000等于0x20000。

2. 下面的语句是什么结果? | 是什么意思? 位运算?
int ix_mode = EXT_INDEXER_OUTFILE_INDEXER | EXT_INDEXER_SYNERGY_OUTPUT ;
答:按位或操作,一般用于标志位的设置,在嵌入式系统编成中用得很多。

3. 通常大家会在什么时候用到这样的程序?
答:一般在设置标志时,使用这种咚咚。
------解决方案--------------------
3. 通常大家会在什么时候用到这样的程序?

一些标志,
比如错误标志,
一个位代表一种错误,
比如0x1 是溢出
0x02是 域出错
0x04是...

这样,
通过一个位代表一种错误,
那么位运算就可以综合多种错误类型的反馈了
------解决方案--------------------
大写变小写的时候可以用 A|0x00000020
------解决方案--------------------
decimal(32)的意思...
友情提示:
信息收集于互联网,如果您发现错误或造成侵权,请及时通知本站更正或删除,具体联系方式见页面底部联系我们,谢谢。

其他相似内容:

热门推荐: