当前位置: 首页 > news >正文

网站建设投标书模板国外网站空间租用哪个好

网站建设投标书模板,国外网站空间租用哪个好,移动开发网站建设,WordPress论坛用哪些以下内容为本人的著作,如需要转载,请声明原文链接 微信公众号「ENG八戒」https://mp.weixin.qq.com/s/htYGddzO2xPl9kDN4lANpQ 大小端存储的划分是为了解决长度大于一个字节的数据类型内容在存储地址上以不同顺序分布的问题。 比如16位的short整形&…

以下内容为本人的著作,如需要转载,请声明原文链接 微信公众号「ENG八戒」https://mp.weixin.qq.com/s/htYGddzO2xPl9kDN4lANpQ

大小端存储的划分是为了解决长度大于一个字节的数据类型内容在存储地址上以不同顺序分布的问题。

比如16位的short整形,32位的int整形,64位的long整形,它们在存储地址上,其实最小的划分单位是字节,那么高低位的字节排列在从低到高的存储地址上有什么规定呢?

如果最高位的字节数据存在最低地址上,而次高位的字节数据按次序排列在次低的地址上,那么这种存储方式就叫大端存储

如果最低位的字节数据存在最低地址上,而次低位的字节数据按次序排列在次低的地址上,那么这种存储方式就叫小端存储

那么怎么去判断当前系统属于大端存储还是小端存储呢?

判断方法一:利用单字节类型强制转换多字节类型变量获取返回值比较

下面让我们看看实例代码:

#include <iostream>using namespace std;bool IsSystemBigEndianStorage()
{short src = 1;char comp = (char)src;return (comp == 0);
}int main()
{bool ret = IsSystemBigEndianStorage();if (ret) {cout << "big endian" << endl;} else {cout << "small endian" << endl;}return 0;
}

首先把单字节范围内的数据值(比如1)赋给更大长度的类型(比如2个字节的short)变量src,然后利用单字节长度的数据类型(char)强制转换变量src,会在内存空间上截取变量src对应存储在最低地址的一个字节数据并返回。

bool IsSystemBigEndianStorage()
{short src = 1;char comp = (char)src;return (comp == 0);
}

可以看到变量src的高位字节数据为0,低位字节数据为1,各不相同。

如果(char)src的返回值等于0,就表示存储在最低地址的字节数据等于高位字节数据0x00,属于大端存储,否则表示属于小端存储

判断方法二:利用联合体类型union比较内部的单字节数据

修改一下上面的函数IsSystemBigEndianStorage

bool IsSystemBigEndianStorage()
{union {short a;char b;} temp;temp.a = 1;return (temp.b == 0);
}

可以看到变量temp.a的高位字节数据为0,低位字节数据为1,各不相同。

根据内存空间中字节对齐的规律,联合体union类型,各成员变量的起始地址是一样的。即使各成员变量的数据长度不一样也不影响。

也就是说temp.a最低地址空间的数据内容就是temp.b的数据内容。

如果temp.b的值等于0,就表示存储在最低地址的字节数据等于高位字节数据0x00,属于大端存储,否则表示属于小端存储

关于网络字节顺序

网络中充斥着各种各样的终端设备或者中间代理路由等,数据利用网络进行传输,传输的基本数据单位也是字节,于是多字节类型的数据也会面临大小端的传输顺序定义。

所以,在传输前和传输后的设备怎么同步这个多字节类型数据的存储呢?由传输前后端的设备共同决定吗?

比如两个不同地区的人碰到一起,如果没有约定俗成的共同语言,一样不知如何去交流。

在数据成功传送和解读完整前,数据两端的设备不会理解对方的意图,那么就有必要由第三方来统一明确定义传输顺序。

于是,TCP/IP 协议规定了网络传输多字节类型数据时,先传输高位的字节数据,次高位的字节数据在其后接着传输。而数据在被网络接口发送到网络时,需要从内存逐字节读取出来,从低地址往高地址开始发送。那么可见在网络传输中,数据的字节顺序形式是大端存储。

本地数据怎么和网络字节顺序转换?

下面针对本地系统为linux举个例子

从本地系统存储顺序转换为网络字节顺序

uint32_t htonl(uint32_t hostlong);
uint16_t htons(uint16_t hostshort);

从网络字节顺序转换为本地系统存储顺序

uint32_t ntohl(uint32_t netlong);
uint16_t ntohs(uint16_t netshort);

http://www.yayakq.cn/news/656931/

相关文章:

  • 怎样联系自己建设网站中国建筑测评官网
  • 五莲县城乡建设局网站首页建设银行网站查开户行
  • 北京东八区网站建设官方网站开发与定制
  • 做网站建设工资高吗广告关键词排名
  • 郑州虚拟货币网站开发国家企业信用信息查询(全国)
  • 银川做网站公司免费下载app软件下载安装到手机
  • 网站php怎么做的本子网站建设
  • 做第三方的qq互联接口时_回调到自己的网站时要延时很久是什么原因wordpress移动端导航菜单加文字
  • 网站首页收录突然没有了上海高端建站
  • 做网站推广的公司百科网站模板
  • 建站 公司万网域名绑定到其它网站
  • 大气装饰装修企业网站模版源码网站备案域名用二级域名
  • 教做粥的网站网站外包
  • 龙岗附近公司做网站建设多少钱记事本做网站改变图片大小
  • joomla 网站建设外贸是做什么的工作内容是什么
  • 网站建设的主要技术指什么天津网站建设网络
  • 商务网站建设与维护试题室内设计公司排名全球
  • 服务器用来做网站和数据库microsoft免费网站
  • 主题网站开发介绍文稿写作网站
  • 二手手机网站网页设计网站规划的基本步骤
  • 网站开发源码售卖合同垂直类网站怎么做
  • 龙岩网红隧道在哪seo快速优化技术
  • 餐饮网站开发背景网络舆情监测内容
  • 如何查看vs中建设好的网站中国建设银行北京天竺支行网站
  • 网站可以免费海搜网做的网站怎么样
  • 我们是设计师 网站建设专家如何建设类似大众点评网站
  • 网站开发工具最适合如何用h5做网站
  • 国外建站企业wordpress 过滤器
  • 免费建站的做水果网站需要多钱
  • 免费网站模板怎么用自己做个网站好还是做别人会员好