1、socket编程常用的相关函数:htons、htonl、ntohs、ntohl

  h:host   n:network      s:string    l:long

2、基本数据类型,2字节,4字节,8字节的转换如下:

try 一 try

template <typename T>
T transformBigToLittleEndian(const T &BiValue)
{
unsigned short sizeCount = sizeof(T);
T liValue; if (sizeCount == )
{
liValue = ((BiValue & 0xFF00) >> )
|((BiValue & 0x00FF) << );
}
else if (sizeCount == )
{
liValue = ((BiValue & 0xFF000000) >> )
| ((BiValue & 0x00FF0000) >> )
| ((BiValue & 0x0000FF00) << )
| ((BiValue & 0x000000FF) << );
}
else if (sizeCount == )
{
liValue = ((BiValue & 0xFF00000000000000) >> )
| ((BiValue & 0x00FF000000000000) >> )
| ((BiValue & 0x0000FF0000000000) >> )
| ((BiValue & 0x000000FF00000000) >> )
| ((BiValue & 0x00000000FF000000) << )
| ((BiValue & 0x0000000000FF0000) << )
| ((BiValue & 0x000000000000FF00) << )
| ((BiValue & 0x00000000000000FF) << );
}
return liValue;
}
template <typename T>
T transformLittleToBigEndian(const T & liValue)
{
unsigned short sizeCount = sizeof(T);
T BiValue; if (sizeCount == )
{
BiValue |= ((liValue & 0x00FF) << );
BiValue |= ((liValue & 0xFF00) >> );
}
else if (sizeCount == )
{
BiValue = ((liValue & 0x000000FF) << )
| ((liValue & 0x0000FF00) << )
| ((liValue & 0x00FF0000) >> )
| ((liValue & 0xFF000000) >> );
}
else if (sizeCount == )
{
BiValue |= ((liValue & 0x00000000000000FF) << );
BiValue |= ((liValue & 0x000000000000FF00) << );
BiValue |= ((liValue & 0x0000000000FF0000) << );
BiValue |= ((liValue & 0x00000000FF000000) << );
BiValue |= ((liValue & 0x000000FF00000000) >> );
BiValue |= ((liValue & 0x0000FF0000000000) >> );
BiValue |= ((liValue & 0x00FF000000000000) >> );
BiValue |= ((liValue & 0xFF00000000000000) >> );
}
return BiValue;
}

int main()
{
transformBigToLittleEndian();
int value = 1;
value = transformLittleToBigEndian(value);
cout << "int value = 1 从小端转为大端后 biA = " << value << endl;


value = transformBigToLittleEndian(value);
cout << "再从大端转换为小端后的值 = " << value << endl;
}

如何判断自己计算机的存储方式是大端存储还是小端存储:https://www.cnblogs.com/azbane/p/11303463.html

小端存储转大端存储 & 大端存储转小端存储的更多相关文章

  1. 把mmapv1存储引擎存储的mongodb3.0数据库数据复制到WiredTiger存储引擎的mongodb3.2中

    mongodb3.0在mmapv1的存储引擎基础上添加了一个新的存储引擎WiredTiger.但是3.0的默认存储引擎依旧是mmapv1,因此我们项目之前也就用的默认方式. 但是mongodb更新实在 ...

  2. 腾讯混合云存储 TStor 系列再添新成员,并行存储一体机正式发布

    最近国内某大型互联网公司依靠其数据优势成功上市,可见数据的重要性,而数据和存储密不可分,您真的知道自己需要更高性能存储吗? 在当今数据爆发式增长的时代,数据已经成为很多行业最重要的资源,没有之一. 数 ...

  3. 转!!MySQL中的存储引擎讲解(InnoDB,MyISAM,Memory等各存储引擎对比)

    MySQL中的存储引擎: 1.存储引擎的概念 2.查看MySQL所支持的存储引擎 3.MySQL中几种常用存储引擎的特点 4.存储引擎之间的相互转化 一.存储引擎: 1.存储引擎其实就是如何实现存储数 ...

  4. js判断移动端浏览器类型,微信浏览器、支付宝小程序、微信小程序等

    起因 现在市场上各种跨平台开发方案百家争鸣各有千秋,个人认为最成熟的还是hybird方案,简单的说就是写H5各种嵌入,当然作为前端工程师最希望的也就是公司采用hybird方案当作技术路线. 所谓的hy ...

  5. 关于Finereport移动端报表二次开发的两个小例子

    例1:刷新页面 1. 问题描述 A超链至B填报,B提交数据后返回A时,A自动刷新显示新的数据. 2. 解决方案 1. contentPane.setAppearRefresh();  //在A的加载结 ...

  6. .NET Core 小程序开发零基础系列(2)——小程序服务通知(模板消息)

    基于上一篇文件“.NET Core 小程序开发零基础系列(1)——开发者启用并校验牵手成功”的反映,个人觉得效果很不错,大家对公众号开发还是有很大需求的,同时也收到了很多同学的问题,后面我也会通过实战 ...

  7. 【移动端 Web】怎么循序渐进地开发一个移动端页面

    1. 移动页面开发基础 1.1 像素——什么是像素 像素是 Web 页面布局的基础,那么到底什么才是一个像素呢? 像素:一个像素就是计算机屏幕所能显示一种特定颜色的最小区域.这是像素的概念,实际上,W ...

  8. 林兴爆料小程序很快可以支持各个 App 直接打开小程序

    在微信开放平台基础高级产品经理林兴演讲的当场,他爆料了微信小程序一个轰动性新能力:小程序很快可以支持各个 App 直接打开小程序!没错,你没有听错,简单来说,在不久以后,所有的 App 里面都可以看到 ...

  9. 微信小程序开发——以简单易懂的浏览器页面栈理解小程序的页面路由

    前言: 对于小程序的页面路由,如果没有一定开发经验的话,理解起来还是会有些困难的.哪怕是有一定小程序开发经验的开发者,能够完全理解掌握的恐怕也不多. 这里就以另外一种方式来详细的介绍小程序的页面栈及路 ...

  10. 移动端经常出现的兼容问题,谈谈移动端应用或者wap站的一些优化技巧和心得

    移动端经常出现的兼容问题,谈谈移动端应用或者wap站的一些优化技巧和心得 1.        安卓浏览器看背景图片,有些设备会模糊. 因为手机分辨率太小,如果按照分辨率来显示网页,字会非常小,安卓手机 ...

随机推荐

  1. Prometheus 安装Grafana与Prometheus集成

    Prometheus 安装Grafana与Prometheus集成 Grafana是一个开源的度量分析和可视化系统. 下载地址:https://grafana.com/grafana/download ...

  2. GT性能测试Android版使用说明

    1 GT简介 GT(随身调) Android版是腾讯 MIG 专项测试组自行研发的 Android APP 随身调测平台,它是直接运行在手机上的“集成调测环境”(ITE, Integrated Tes ...

  3. 安卓访问https错误,访问http可以,可能是nginx ssl证书配置有问题

    开发中遇到react-native生成的android访问UAT和开发环境的http api都可以,但是访问生产环境的https就报错,还有就是第三方webhook调用你https网站的api也可能会 ...

  4. 2019 大众书网Java面试笔试题 (含面试题解析)

      本人5年开发经验.18年年底开始跑路找工作,在互联网寒冬下成功拿到阿里巴巴.今日头条.大众书网等公司offer,岗位是Java后端开发,因为发展原因最终选择去了大众书网,入职一年时间了,也成为了面 ...

  5. 【python+selenium学习】Python常见错误之:IndentationError: unexpected indent

    初入python+selenium学习之路,总会遇到这样那样的问题.IndentationError: unexpected indent,这个坑我已经踏进数次了,索性记录下来.都知道Python对代 ...

  6. ES6的常见语法!!

    let : 声明变量 不存在变量提前 拥有局部作用域 (只要有{}出现 则只在该{}范围内生效) (而var只在函数内会产生作用域范围) 不能重复声明 const : 声明常量(常量名从规范上来将 最 ...

  7. [转] QML PinchArea

    本文转自安老师的博文:Qt Quick 事件处理之捏拉缩放与旋转 绪论 本文介绍在Android 等智能手机上的一个非常重要的手势:捏拉手势. 捏拉手势最早在苹果手机上得到应用,苹果还曾经尝试为此操作 ...

  8. PostgreSQL SQL HINT的使用说明

    本文来自:http://www.023dns.com/Database_mssql/5974.html PostgreSQL优化器是基于成本的 (CBO) , (当然, 如果开启了GEQO的话, 在关 ...

  9. 浅析Volatile关键字

    浅析Volatile关键字 在java中线程并发中,线程之间通信方式分为两种:共享内存和消息传递.共享内存指的是多个线程之间共享内存的属性状态:消息传递指的是线程之间发送信息来通信.在介绍volati ...

  10. 团队第六次作业:Beta版本冲刺成绩汇总

    一.作业题目 团队第六次作业:Beta版本冲刺 二.作业评分标准 博客评分规则(总分100)博客要求 1.冲刺博客每篇占20分.(3次) - (1) 各成员该天完成的工作,以及明天的任务安排(表格的形 ...