小技巧之位操作的一种编程方式
2013-06-27 17:47
197 查看
一般地,我们要确认某个字节a的某位是否为1,
byte ifbit1( byte a ){ // 第一位
return a&0x01;
}
byte ifbit4( byte a ){ // 第4位
return a&0x10;
}
而要确定的位是由变量p指定时,
byte ifbit( byte a, int p ){
byte one = (0x01<<p);
return a&one;
}
再看,如何给某个字节的位置数操作
byte setbit1( byte a ){
return a|0x01;
}
byte clearbit1( byte a ){
return a&0xFE; // a&(0xFF-0x01)
}
同样的,看看由变量p指定的位时的情况:
byte setbit( byte a,int p){
byte one = (0x01<<p);
return a|one;
}
byte clearbit( byte a,int p ){
byte one = (0x01<<p);
return a&(0xFF-one);
}
虽然这些操作非常简单, 但是写成函数,确实非常方便地对位操作进行了封装,还是很有必要的, 尤其是对32位或者64位操作时, 很容易少写或者多写一个0之类的.
还有一种不使用函数的方法,就是定义好位的常量, 直接调用常量来操作.不仅可以增加执行效率,还可以减少函数调用产生的栈操作.
static const byte sbit8[8] = { 0x01, 0x02,0x04,0x08,0x10,0x20,0x40,0x80 };
static const byte cbit8[8] = { 0xFE, 0xFD,0xFB,0xF7,0xEF,0xDF,0xBF,0x7F };
a&sbit8[p]; // 查看p位是否为0
a|sbit8[p]; // 置位
a&cbit8[p] // 清除位
byte ifbit1( byte a ){ // 第一位
return a&0x01;
}
byte ifbit4( byte a ){ // 第4位
return a&0x10;
}
而要确定的位是由变量p指定时,
byte ifbit( byte a, int p ){
byte one = (0x01<<p);
return a&one;
}
再看,如何给某个字节的位置数操作
byte setbit1( byte a ){
return a|0x01;
}
byte clearbit1( byte a ){
return a&0xFE; // a&(0xFF-0x01)
}
同样的,看看由变量p指定的位时的情况:
byte setbit( byte a,int p){
byte one = (0x01<<p);
return a|one;
}
byte clearbit( byte a,int p ){
byte one = (0x01<<p);
return a&(0xFF-one);
}
虽然这些操作非常简单, 但是写成函数,确实非常方便地对位操作进行了封装,还是很有必要的, 尤其是对32位或者64位操作时, 很容易少写或者多写一个0之类的.
还有一种不使用函数的方法,就是定义好位的常量, 直接调用常量来操作.不仅可以增加执行效率,还可以减少函数调用产生的栈操作.
static const byte sbit8[8] = { 0x01, 0x02,0x04,0x08,0x10,0x20,0x40,0x80 };
static const byte cbit8[8] = { 0xFE, 0xFD,0xFB,0xF7,0xEF,0xDF,0xBF,0x7F };
a&sbit8[p]; // 查看p位是否为0
a|sbit8[p]; // 置位
a&cbit8[p] // 清除位
相关文章推荐
- Cocos2dx 小技巧(十二) 一种可行的系列动画播放方式
- Android 编程下 TextView 添加链接的一种方式
- 比较讨厌的一种编程方式
- 百度2017年暑假实习生编程题目(第二题)----2、页面调度 在计算机中,页式虚拟存储器实现的一个难点是设计页面调度(置换)算法。其中一种实现方式是FIFO算法。
- minigui界面生成工具的一种简单实现方式,轻松实现Windows/linux minigui 跨平台界面编程
- Android 反射 换一种方式编程
- 选择dojo,选择一种编程方式
- Android 反射-换一种方式编程
- 结对编程真是一种理想的编程方式
- Android 编程下 TextView 添加链接的一种方式
- python 元类型编程, 单例模式SingleTon的一种实现方式
- 一种提高编程效率的『简单方式』
- 编程的真正奥义在于,把人类的思维、设计、语言、逻辑和精神创造以一种计算机可以识别和储存的方式记录下来。
- matlab和vc混合编程之matcom方式
- 通过编程方式获取backtrace(函数调用栈)
- 关于opencv编程get到两个小技巧
- 用原始的方式学习编程
- 如何以编程方式设置基于 Windows Mobile 的 Smartphone 输入模式?
- Ubuntu使用小技巧--设置文件关联方式
- java网络编程:网络连接方式(学习李宁的极客世界)