小端存储转大端存储 & 大端存储转小端存储
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
小端存储转大端存储 & 大端存储转小端存储的更多相关文章
- 把mmapv1存储引擎存储的mongodb3.0数据库数据复制到WiredTiger存储引擎的mongodb3.2中
mongodb3.0在mmapv1的存储引擎基础上添加了一个新的存储引擎WiredTiger.但是3.0的默认存储引擎依旧是mmapv1,因此我们项目之前也就用的默认方式. 但是mongodb更新实在 ...
- 腾讯混合云存储 TStor 系列再添新成员,并行存储一体机正式发布
最近国内某大型互联网公司依靠其数据优势成功上市,可见数据的重要性,而数据和存储密不可分,您真的知道自己需要更高性能存储吗? 在当今数据爆发式增长的时代,数据已经成为很多行业最重要的资源,没有之一. 数 ...
- 转!!MySQL中的存储引擎讲解(InnoDB,MyISAM,Memory等各存储引擎对比)
MySQL中的存储引擎: 1.存储引擎的概念 2.查看MySQL所支持的存储引擎 3.MySQL中几种常用存储引擎的特点 4.存储引擎之间的相互转化 一.存储引擎: 1.存储引擎其实就是如何实现存储数 ...
- js判断移动端浏览器类型,微信浏览器、支付宝小程序、微信小程序等
起因 现在市场上各种跨平台开发方案百家争鸣各有千秋,个人认为最成熟的还是hybird方案,简单的说就是写H5各种嵌入,当然作为前端工程师最希望的也就是公司采用hybird方案当作技术路线. 所谓的hy ...
- 关于Finereport移动端报表二次开发的两个小例子
例1:刷新页面 1. 问题描述 A超链至B填报,B提交数据后返回A时,A自动刷新显示新的数据. 2. 解决方案 1. contentPane.setAppearRefresh(); //在A的加载结 ...
- .NET Core 小程序开发零基础系列(2)——小程序服务通知(模板消息)
基于上一篇文件“.NET Core 小程序开发零基础系列(1)——开发者启用并校验牵手成功”的反映,个人觉得效果很不错,大家对公众号开发还是有很大需求的,同时也收到了很多同学的问题,后面我也会通过实战 ...
- 【移动端 Web】怎么循序渐进地开发一个移动端页面
1. 移动页面开发基础 1.1 像素——什么是像素 像素是 Web 页面布局的基础,那么到底什么才是一个像素呢? 像素:一个像素就是计算机屏幕所能显示一种特定颜色的最小区域.这是像素的概念,实际上,W ...
- 林兴爆料小程序很快可以支持各个 App 直接打开小程序
在微信开放平台基础高级产品经理林兴演讲的当场,他爆料了微信小程序一个轰动性新能力:小程序很快可以支持各个 App 直接打开小程序!没错,你没有听错,简单来说,在不久以后,所有的 App 里面都可以看到 ...
- 微信小程序开发——以简单易懂的浏览器页面栈理解小程序的页面路由
前言: 对于小程序的页面路由,如果没有一定开发经验的话,理解起来还是会有些困难的.哪怕是有一定小程序开发经验的开发者,能够完全理解掌握的恐怕也不多. 这里就以另外一种方式来详细的介绍小程序的页面栈及路 ...
- 移动端经常出现的兼容问题,谈谈移动端应用或者wap站的一些优化技巧和心得
移动端经常出现的兼容问题,谈谈移动端应用或者wap站的一些优化技巧和心得 1. 安卓浏览器看背景图片,有些设备会模糊. 因为手机分辨率太小,如果按照分辨率来显示网页,字会非常小,安卓手机 ...
随机推荐
- pytest_demo_实战2_fixture应用
1.py文件所在文件夹下创建 __init__.py 文件 2.文件夹目录下:创建conftest.py import pytest # @pytest.fixture() 里面没有参数,那么默认sc ...
- Password file not found:.../jmxremote.password
jmxremote.password 在jdk/jre/lib/management/下,jmxremote.password.template复制,去掉.template后缀 在配置JMX远程访问的 ...
- 大数据基础总结---HDFS分布式文件系统
HDFS分布式文件系统 文件系统的基本概述 文件系统定义:文件系统是一种存储和组织计算机数据的方法,它使得对其访问和查找变得容易. 文件名:在文件系统中,文件名是用于定位存储位置. 元数据(Metad ...
- winform按钮美化(非图片)
在开发过程中,突然发现vs自带的按钮属性中通过修改Button控件的BackColor的颜色和字体颜色(ForeColor属性)及大小,如下图 就能达到简单美化按钮的效果,下面是显示效果 有兴趣的同学 ...
- PIE SDK直方图统计法
1.算法功能简介 图像直方图描述了图像中每个亮度值DN的像元数量的统计分布.它通过每个亮度值的像元数除以图像中总得像元数,即频率直方图.在很多遥感应用中,直方图是遥感图像中所包含的信息的一种有用的图示 ...
- v-bind 属性绑定
1.v-bind:title="title" 绑定谁和谁绑定. 2.v-bind:title="title" 简写::title="title&quo ...
- 一问带你区分清楚Authentication,Authorization以及Cookie、Session、Token
上周写了一个 适合初学者入门 Spring Security With JWT 的 Demo .Demo 地址:https://github.com/Snailclimb/spring-securit ...
- Gin-Go学习笔记八:Gin-Web框架 常用的包
常用的包 1> 在java,.net,php,node.js等语言常常会使用到包的概念.包的使用,可以加快项目的进度的开发,以及更好的实现项目的效果.我在网上查到了包的作用如下: 1.包 ...
- 英语cowbezoar牛黄cowbezoar单词
牛黄(cowbezoar)是脊索动物门哺乳纲牛科动物牛胆囊的胆结石.在胆囊中产生的称“胆黄”或“蛋黄”,在胆管中产生的称“管黄”,在肝管中产生的称“肝黄”. 中文学名牛黄 拉丁学名Bos taurus ...
- 存货?交期?产能不足?APS系统帮你完成计划排程
信息化时代的今天,技术的进步.全球化的竞争与市场环境迅速变化,使得制造业企业的经营环境变得日益复杂. 集中表现在产品生命周期和交货期的缩短,与此同时顾客的需求也变得多样化和个性化.生产方式也从大批量生 ...