VC++进行64位整数网络字节序与主机字节序相互转换方法
在windows 8.1 以后的版本直接就能用htonll和ntohll进行相互转换。其实此方法已实现,只是在windows 8.0及以下版本中并未开放,这里是微软件的实现方式(还有其它实现方式),经测试可用,这里将它摘出来,如下所示:
#define _WS2_32_WINSOCK_SWAP_LONG(l) \
( ( ((l) >> 24) & 0x000000FFL ) | \
( ((l) >> 8) & 0x0000FF00L ) | \
( ((l) << 8) & 0x00FF0000L ) | \
( ((l) << 24) & 0xFF000000L ) )
#define _WS2_32_WINSOCK_SWAP_LONGLONG(l) \
( ( ((l) >> 56) & 0x00000000000000FFLL ) | \
( ((l) >> 40) & 0x000000000000FF00LL ) | \
( ((l) >> 24) & 0x0000000000FF0000LL ) | \
( ((l) >> 8) & 0x00000000FF000000LL ) | \
( ((l) << 8) & 0x000000FF00000000LL ) | \
( ((l) << 24) & 0x0000FF0000000000LL ) | \
( ((l) << 40) & 0x00FF000000000000LL ) | \
( ((l) << 56) & 0xFF00000000000000LL ) )
#ifndef htonll
__inline unsigned __int64 LIBAPI htonll ( unsigned __int64 Value )
{
const unsigned __int64 Retval = _WS2_32_WINSOCK_SWAP_LONGLONG (Value);
return Retval;
}
#endif /* htonll */
#ifndef ntohll
__inline unsigned __int64 LIBAPI ntohll ( unsigned __int64 Value )
{
const unsigned __int64 Retval = _WS2_32_WINSOCK_SWAP_LONGLONG (Value);
return Retval;
}
#endif /* ntohll */
另外,如果是C#的话,使用IPAddress.HostToNetworkOrder方法直接就能转。
VC++进行64位整数网络字节序与主机字节序相互转换方法相关推荐
- linux网络编程一:主机字节序与网络字节序的的判断
linux网络编程一:主机字节序与网络字节序的的判断(1)现代CPU的累加器一次能装载至少4字节(32位),即一个整数.那么这4字节在内存中排列的顺序将影响它被累加器装载成的整数值,这就是字节序问题 ...
- java 网络字节序转主机字节序_C语言高级编程——网络编程技术
了解什么是网络编程 熟悉七层网络模型 熟悉网络开发中使用到的函数 掌握TCP协议类程序开发 掌握UDP协议类程序开发 计算机本身是不会进行网络通信的,所以要想使通过软件进行网络通信,必须制定相应的规则 ...
- 网络字节序与主机字节序的相互转换
1.网络字节序与主机字节序 在Linux网络编程中,经常碰到网络字节序与主机字节序的相互转换.说到网络字节序与主机字节序需要清晰了解以下几个概念. 字节序,顾名思义,指字节在内存中存储的顺序.比如一个 ...
- Windows 32、64位系统编译器各数据类型大小和字节对齐关系
何为32位64位? 32位64位其实就是32bit 64bit ,32位cpu单次处理指令4字节,64位8字节,因为1字节=1byte=8bit(32/8=4字节,64/8=8字节) 32位编译器:3 ...
- php 字节序,Linux_Linux中网络字节序和主机字节序,主机字节序就是我们平常说的 - phpStudy...
Linux中网络字节序和主机字节序 主机字节序就是我们平常说的大端和小端模式:不同的 CPU 有不同的字节序类型,这些字节序是指整数在内存中保存的顺序 这个叫做主机序.Big-Endian和Littl ...
- 网络字节序和主机字节序
网络字节序说明 TCP/IP协议规定,网络数据流应采用大端字节序,即低地址高字节.例如上一节的UDP段格式,地址0-1是16位的源端口号,如果这个端口号是1000(0x3e8),则地址0是0x03,地 ...
- java转网络字节序_【转】网络字节序与主机字节序
最近在项目开发过程中,需要在采用JAVA作为语言的服务器与采用C++作为语言的服务器间进行通信,这就涉及到这两种语言间数据类型的转换以及网络字节序与主机字节序的区别.该文主要说说网络字节序和主机字节序 ...
- php 64位整数,32位和64位PHP和MySQL里的整型范围
一个字节有8位,所以32位int型占用32位/8位=4个字节,64位int型占用64位/8位=8个字节. 32位,64位无符号整型最大值: 2^64-1 = 18446744073709551615 ...
- 再探C#类与结构体究竟谁快——考虑栈变量、栈分配、64位整数、密封类
上次我对C#类与结构体做了一次速度评测(http://blog.csdn.net/zyl910/article/details/6788417).经过一段时间思索,发现还可以进一步探讨-- 第一.栈变 ...
最新文章
- 提升 composer 的执行速读
- PPC中检查某程序是否运行
- Android源码解析--SwipeMenuListView仿QQ聊天左滑
- Spark的Transformations算子(理解+实例)
- 实变函数与泛函分析课本pdf_实变函数与泛函分析
- Ubuntu 13.04 安装最新版本的Nginx
- 关于安装QTP之后造成环境变量java冲突问题的解决方案
- 抓鸡 抓服务器 1433 3306 全自动效率抓鸡
- matlab gui 滤波器,基于Matlab GUI的数字滤波器设计及其应用
- 微信小程序获得二维码
- 动手学深度学习笔记3.1+3.2+3.3
- 关于中小学编程教育的一些看法
- winform直接控制云台_比 2 代便宜的灵眸手机云台 3,竟然还多了 15 条新亮点!...
- SISD、MIMD、SIMD、MISD计算机的体系结构的Flynn分类法
- 杭电2001_杭电考研851数据结构2001-2015年真题
- 最小树形图——朱刘算法
- stm32f4有重映射么_STM32Fxx JTAG/SWD复用功能重映射
- 抖音矩阵号,优化排名,抖音短视频SEO矩阵系统源码开发。
- Spread.NET 14.0 Crack 最新版
- 可视化神器plolty的图例详解
热门文章
- 百度SEO站长分析查询工具包推荐
- 网络七层模型-理解及总结
- 出差在外,远程访问企业局域网象过河ERP系统「内网穿透」
- 985高校明确不再为全部研究生提供宿舍!读研费用又要增加了吗?
- 银河航天CEO徐鸣:年内完成三次融资 最新估值超35亿
- 著名数学家谁提出了储存程序计算机理论,《计算机的组成》1945年,美籍着名数学家冯·诺依曼提出了存储程序的设计.DOC...
- CBW、CWDE、CDQ、CWD: 扩展指令
- Z字形变换(C++)
- Image 常用命令整理
- C++生成随机字符串