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

请教c/c++中的“与、或、异或”移位都能实现什么功能,具体执行的操作小弟我是明白,就是不知道在实际编程的时候,能实现什么功能,就像下面的程序,哪位高手能帮小弟

2012-02-27 
请问c/c++中的“与、或、异或”移位都能实现什么功能,具体执行的操作我是明白,就是不知道在实际编程的时候,能

请问c/c++中的“与、或、异或”移位都能实现什么功能,具体执行的操作我是明白,就是不知道在实际编程的时候,能实现什么功能,就像下面的程序,谁能帮我注释一下
请问c/c++中的“与、或、异或”移位都能实现什么功能,具体执行的操作我是明白,就是不知道在实际编程的时候,能实现什么功能,就像下面的程序,谁能帮我注释一下

void WINAPI Asc2Byte(void* ascptrc, BYTE *byteptr)
{
char*ascptr = (char*)ascptrc;
BYTEtmp[2] ;

if (*(ascptr) > '9')
{
if (*(ascptr) < 'a')
tmp[0] = ((((BYTE)(*(ascptr))) - 0x37) << 4);
else tmp[0] = ((((BYTE)(*(ascptr))) - 0x57) << 4);
}
else tmp[0] = ((((BYTE)(*(ascptr))) - '0') << 4);
ascptr++;

if (*(ascptr) > '9')
{
if (*(ascptr) < 'a')
tmp[1] = (((BYTE)(*(ascptr))) - 0x37);
else tmp[1] = (((BYTE)(*(ascptr))) - 0x57);
}
else tmp[1] = (((BYTE)(*(ascptr))) - '0');
ascptr++;

*byteptr = tmp[0] | tmp[1]; 
}

[解决办法]
等待高手解答
[解决办法]
...我只能说 机器语言LZ知道吧 计算只认识0和1,位操作就是直接进行0和1的运算,可以说是最底层的了,
速度那不用说。你可以做个测试,看看时间哪个用的多。
弄两个个循环分别1W次,n>>2和n除2,你看时间那个快....
[解决办法]
这些都是解释给机器的
[解决办法]
举个移位列子 

2的3次方

你按乘法算 实际就是按加法算 10+10+10+10 =1000

这样要运算3次

但是用位移的话 直接左移3位 10--》1000

运算1次

快很多

热点排行