巧用union实现整数高低位拆分
2014-07-20 12:30
956 查看
常见的字节顺序有两种:Big Endian(High-byte first)和Little
Endian(Low-byte first),比如Intel X86平台使用LE。
拆分整数,快速读取高位低位,十分必要,有时巧用union会事半功倍。
#include<stdio.h>
union MYhex{
unsigned char str[2];
unsigned short _num;//int、long等类似
};
int main(int argc,char *argv[])
{
MYhex test;
test._num=0x10A2;
printf("%X %d\n",test._num,test._num);//十六进制,十进制输出
printf("%X \n",test.str[0]);//x86平台下,低字节
printf("%X \n",test.str[1]);//高字节
return 0;
}
Endian(Low-byte first),比如Intel X86平台使用LE。
拆分整数,快速读取高位低位,十分必要,有时巧用union会事半功倍。
#include<stdio.h>
union MYhex{
unsigned char str[2];
unsigned short _num;//int、long等类似
};
int main(int argc,char *argv[])
{
MYhex test;
test._num=0x10A2;
printf("%X %d\n",test._num,test._num);//十六进制,十进制输出
printf("%X \n",test.str[0]);//x86平台下,低字节
printf("%X \n",test.str[1]);//高字节
return 0;
}
相关文章推荐
- 三数组合为一大整数且这一大数又能拆分成这三个数---算法实现
- Golang算法问题之整数拆分实现方法分析
- 用 union 将现有数据,按条件拆分,并同时做合计统计,最后实现数据条件分组统计。
- 算法基础:整数拆分问题(Golang实现)
- 算法基础:整数拆分问题(Golang实现)
- c++ 实现整数的拆分
- 关于高精度正整数计算的JAVA实现
- 实现静态拆分窗口的问题
- 随机正整数生成类的JAVA实现
- 有链表实现长整数的加法
- Visual C+6.0实现文本串的自由拆分
- [C++]第七次作业:实现一个大整数类BigInt
- java实现一个整数和一个小数的四则运算和求最大值,平均值。
- 一个利用堆栈实现的正整数10进制向16进制的转化程序
- 实现任意长的整数进行加法运算的演示程序
- 整数拆分(可重复)
- 分治法优化大整数乘法 C++实现
- 用汇编实现任意长度的两个整数相加
- [导入]不用判断性语句,实现求两个整数中较大数的函数
- 用汇编实现任意长度的两个整数相加