首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > C++ >

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

2012-03-15 
0x00000020是什么意思?有一个头文件中,定义有如下的两个宏#defineEXT_INDEXER_OUTFILE_INDEXER0x0002000

"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)的意思...

热点排行