C++之位测试练习的相关代码

来源:互联网 发布:怎么维护代理商 知乎 编辑:程序博客网 时间:2024/06/17 01:44

## 位测试相关代码

#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 6UINT32 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;elsereturn 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;}


0 0
原创粉丝点击