C++之位测试练习的相关代码
2015-12-08 16:38
405 查看
## 位测试相关代码
#include <iostream> #include <stdio.h> #include <arpa/inet.h> using namespace std; typedef unsigned int UINT32; typedef union { struct Color{ UINT32 end:6; UINT32 b:8; UINT32 g:8; UINT32 r:8; UINT32 type: 2; } color; UINT32 data; } ColorData; #define TYPE_LEN 2 #define R_LEN 8 #define G_LEN 8 #define B_LEN 8 #define END_LEN 6 UINT32 formColor(UINT32 type,UINT32 r,UINT32 g,UINT32 b,UINT32 end){ printf("type:\t%u\n",type << 30); printf("r:\t%u\n",r << 22); printf("g:\t%u\n",g << 14); printf("b:\t%u\n",b << 6); return (type << 30) + (r << 22) + (g << 14) + (b << 6) + (end); } bool isBigEndian(){ int x = 1; char * p = (char *)&x; if(*p == 1) return false; else return true; } int main(){ ColorData gColorData; UINT32 col = formColor(2,60,60,60,20); gColorData.data = col; printf("htonl:\t%d\n",col); printf("Endian-Mode:%d\n",isBigEndian()); printf("colordata:\t%u\n",col); printf("==============================================\n"); printf("type:\t%d\n",gColorData.color.type); printf("r:\t%d\n",gColorData.color.r); printf("g:\t%d\n",gColorData.color.g); printf("b:\t%d\n",gColorData.color.b); printf("end:\t%d\n",gColorData.color.end); printf("==============================================\n"); return 0; }
相关文章推荐
- C++ 建设者继承
- c++中volatile关键字解释
- 推荐下载资源-VC++控件Datagrid
- Visual C++ Tips: 忽略 LNK4099 警告
- Effective C++:规定20: 宁pass-by-reference-to-const更换pass-by-value
- C语言基础--指针和数据存储
- C/C++与python互相调用
- c语言怎么会有这么多的作用域?
- 一个简单的三子棋游戏(c语言实现)
- c语言中递归函数真的好吗?
- c语言中对可变参数列表的简单理解
- c语言中统计二进制位中1的个数的算法优化
- c语言最强大之处--指针
- C语言中的动态内存分配
- C语言基础--函数和结构体
- VC++实现Windows中双显示器(主屏、扩展屏)各种操作的源码工程
- C语言成长学习题(十五)
- C++ 语法
- Java和C/C++的差异总结
- C++之动态配置ip信息