在做数据压缩的时候, 需要找到最小存储单元, 在网上看了,没找到合适的,这里把我想到的一种方式供大家参考。
#include#include using namespace std; char bin_left_one(u_int64_t num){ char pos = 0; u_int64_t t = num; for(int i = 5; i >= 0; i--){ if(num >> (1<>= (1< 输出样式:
[1] pos: 1 [2] pos: 2 [4] pos: 3 [8] pos: 4 [10] pos: 5 [20] pos: 6 [40] pos: 7 [80] pos: 8 [100] pos: 9 [200] pos: 10 [400] pos: 11 [800] pos: 12 ... ...比如我要做数据压缩时的样例:
#include#include #include using namespace std; char bin_left_one(u_int64_t num){ char pos = 0; u_int64_t t = num; for(int i = 5; i >= 0; i--){ if(num >> (1<>= (1<= 0 ; i--){ printf("%02x ", ((char*)&a)[i]); } printf("n"); return 0; } 打印效果:
数据本身: 0x102030 内存数据: 30 20 10 00 00 00 00 00 压缩数据: 10 20 30欢迎分享,转载请注明来源:内存溢出
评论列表(0条)