您的位置:首页 > 其它

版本号数值传输转换

2016-09-10 14:08 155 查看
通常软件APP等都需要做提示升级功能,客户端在获取服务器版本号时,将得到的值与客户端本地值进行比较判断升级,版本号提升则要提示升级,而其中的版本号值的传输,则可以通过字符串或者数值的形式传输;

这里以版本versions:"1.2.3"为例,通过字符串传输的形式则比较直观,客户端接收后,进行split拆分判断即可,而通过转换数值后再传输,则更省流量及提升性能;

版本号与单个数值之间换算,则可以结合位移、位与、位或实现,实现代码如下:

#include <stdio.h>
#include <stdlib.h>
#include <iostream>
typedef unsigned int uint;

int main(int argc, const char * argv[]) {

//自定义版本号
int versions[3] = {1,2,3};

//转换为单个数值
uint verNum = versions[0] << 24 | versions[1] << 16 | versions[2] << 8;
printf("verNum:%d\n",verNum);

//逆向还原版本号
uint mainV = verNum >> 24;
uint subV = ((255 << 16) & verNum) >> 16;
uint minV = ((255 << 8) & verNum) >> 8;
printf("versions:%d.%d.%d\n",mainV,subV,minV);

return 0;
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: