格雷码和二进制码的转换
2016-03-31 18:54
204 查看
/* * This function converts an unsigned binary * number to reflected binary Gray code. * * The operator >> is shift right. The operator ^ is exclusive or. */ unsigned int binaryToGray(unsigned int num) { return num ^ (num >> 1); } /* * This function converts a reflected binary * Gray code number to a binary number. * Each Gray code bit is exclusive-ored with all * more significant bits. */ unsigned int grayToBinary(unsigned int num) { unsigned int mask; for (mask = num >> 1; mask != 0; mask = mask >> 1) { num = num ^ mask; } return num; } /* * A more efficient version, for Gray codes of 32 or fewer bits. */ unsigned int grayToBinary32(unsigned int num) { num = num ^ (num >> 16); num = num ^ (num >> 8); num = num ^ (num >> 4); num = num ^ (num >> 2); num = num ^ (num >> 1); return num; }
相关文章推荐
- 新框架(BSF_JAVA)环境部署个人总结
- 144. Binary Tree Preorder Traversal
- Ubuntu15.10安装Arduino IDE记录
- Activity之Notification(通知)
- 使用Collections.sort()实现List正反排序的方法
- JavaScript 基础知识点
- js中接口的实现
- JPA(hibernate实现)与mybatis对比
- android自定义UI组件
- 小数位数的处理(JS前端,C#后台,SQL处理,报表处理)
- js获取html5 audio 音频时长方法
- 【bzoj2669】【cqoi2012】【局部极小值】【状压dp】
- 简单工厂模式
- hdu 5651
- C++实验2—作业
- IP协议
- caffe windows 训练自己的图片数据
- Intellij IDEA常用配置详解
- Visual Studio 2015的安装和简单的测试
- Android 属性动画(Property Animation) 完全解析