1.网络字节序转为主机字节序

//网络字节序转为主机字节序
uint64_t utils::Ntohll(uint64_t val)
{if (__BYTE_ORDER == __LITTLE_ENDIAN) {return (((uint64_t)ntohl((int32_t)((val << 32) >> 32))) << 32)| (uint32_t)ntohl((int32_t)(val >> 32));} else if (__BYTE_ORDER == __BIG_ENDIAN) {return val;}
}

2.主机字节序转为网络字节序

//主机字节序转为网络字节序
uint64_t utils::Htonll(uint64_t val)
{if (__BYTE_ORDER == __LITTLE_ENDIAN) {return (((uint64_t)htonl((int32_t)((val << 32) >> 32))) << 32)| (uint32_t)htonl((int32_t)(val >> 32));} else if (__BYTE_ORDER == __BIG_ENDIAN) {return val;}
}

3.另外加一个函数:根据补码转为负数:

//根据补码转为负数
int64_t utils::ComplementToForm(int64_t value, uint32_t bit_num)
{uint32_t count = 0;int64_t ret = 0;if (bit_num == 0) {return value;}if (((value >> (bit_num - 1)) & 1) == 1) {while (count <= (bit_num - 1)) {ret |= (((value >> count) & 1) ^ 1) << count;count++;}ret += 1;return -ret;} else {TRACE_WITH_DETAIL("this is a positive number\n ");}return value;
}

网络字节序和主机字节序互转相关推荐

  1. C#之网络字节序与主机字节序互转

    主机字节序转网络字节序 //加上两个字节长度,再发送byte[] bSend = new byte[buffer.Length + 2]; byte[] bLenth = BitConverter.G ...

  2. linux网络编程一:主机字节序与网络字节序的的判断

     linux网络编程一:主机字节序与网络字节序的的判断(1)现代CPU的累加器一次能装载至少4字节(32位),即一个整数.那么这4字节在内存中排列的顺序将影响它被累加器装载成的整数值,这就是字节序问题 ...

  3. php 字节序,Linux_Linux中网络字节序和主机字节序,主机字节序就是我们平常说的 - phpStudy...

    Linux中网络字节序和主机字节序 主机字节序就是我们平常说的大端和小端模式:不同的 CPU 有不同的字节序类型,这些字节序是指整数在内存中保存的顺序 这个叫做主机序.Big-Endian和Littl ...

  4. java 网络字节序转主机字节序_C语言高级编程——网络编程技术

    了解什么是网络编程 熟悉七层网络模型 熟悉网络开发中使用到的函数 掌握TCP协议类程序开发 掌握UDP协议类程序开发 计算机本身是不会进行网络通信的,所以要想使通过软件进行网络通信,必须制定相应的规则 ...

  5. 网络字节序与主机字节序的相互转换

    1.网络字节序与主机字节序 在Linux网络编程中,经常碰到网络字节序与主机字节序的相互转换.说到网络字节序与主机字节序需要清晰了解以下几个概念. 字节序,顾名思义,指字节在内存中存储的顺序.比如一个 ...

  6. 网络字节序和主机字节序

    网络字节序说明 TCP/IP协议规定,网络数据流应采用大端字节序,即低地址高字节.例如上一节的UDP段格式,地址0-1是16位的源端口号,如果这个端口号是1000(0x3e8),则地址0是0x03,地 ...

  7. java转网络字节序_【转】网络字节序与主机字节序

    最近在项目开发过程中,需要在采用JAVA作为语言的服务器与采用C++作为语言的服务器间进行通信,这就涉及到这两种语言间数据类型的转换以及网络字节序与主机字节序的区别.该文主要说说网络字节序和主机字节序 ...

  8. 【转】大端模式与小端模式、网络字节顺序与主机字节顺序 (经典)

    大端模式与小端模式 一.概念及详解 在各种体系的计算机中通常采用的字节存储机制主要有两种: big-endian和little-endian,即大端模式和小端模式. 先回顾两个关键词,MSB和LSB: ...

  9. 大端模式、小端模式、网络字节顺序与主机字节顺序

    大端模式.小端模式.网络字节顺序与主机字节顺序 大端模式与小端模式 概念与详解 在各种体系的计算机中通常采用的字节存储机制主要有两种:big-endian和little-endian,即大端模式和小端 ...

最新文章

  1. C++智能指针:weak_ptr实现详解
  2. center os7 安装mysql
  3. 你不知道的z-index
  4. MySQL从入门到精通50讲(八)-MySQL排序分组
  5. mysql stack is full_mysql优化之表的优化与列类型选择
  6. lucene简介_Lucene简介
  7. 为特使构建控制平面的指南-为可插入性构建
  8. php查询变量类型,php判断变量类型常用方法
  9. 【软件工程】计算资源
  10. django-模板的继承
  11. [洛谷P1369]矩形
  12. RabbitMQ学习之spring-amqp的重要类的认识
  13. C/C++指针 数组
  14. git21天打卡day12切换分支修改文件
  15. 项目管理十大知识领域之项目成本管理
  16. SSR pac模式配置和Gitee转移图床失败的尝试
  17. 图灵奖得主David Patterson出席2022全球软件研发技术大会
  18. 苹果x和xsmax有什么区别_苹果iPhone12与iPhone12Pro有什么区别怎么选
  19. php读取服务器csv文件,PHP进行读取CSV文件数据和生成CSV文件
  20. Ubuntu 终端窗口操作快捷键

热门文章

  1. C/C++ 操作注册表
  2. VS2017链接报错:fatal error LNK1318: 非意外的 PDB 错误
  3. 计算机二级ppt相册制作,计算机二级Web程序:Flash相册制作方法解析
  4. access日期如何增加年数_ACCESS支持的时间日期函数
  5. 烛照幽荧是鸿蒙时期,上古圣兽:太阳烛照与太阴幽荧
  6. 【OWA】04集成SharePoint:SharePoint集成OWA详细步骤(SharePoint与OWA集成)
  7. linux之常用指令的英文全称 、中文解释
  8. 惊喜开学季,教你如何在人工智能时代站稳脚跟!
  9. Linux命令·ss
  10. 容错服务器怎么装系统,企业怎么选择集群服务器和容错服务器