美文网首页
iOS二进制高位在后面

iOS二进制高位在后面

作者: 大大东 | 来源:发表于2021-07-15 12:13 被阅读0次

最近和服务端做了socket通信,处理packet时遇到了二进制高位不统一的问题,

// iOS中len的二进制为0xff000000 (高位在后面)
// 但是传递到服务端 转换出的数字会变得非常大 
uint32_t len = 255;
//  所以需要转换为 0x000000ff(高位在前面) 再传递到服务端 即:
len = htonl(len);
//  反过来转换用 ntohl()

后来查了下,其实是不同平台之间通信时就需要注意这个问题,有两个名词为网络字节序主机字节序

下面摘自百度百科:

[网络字节序]转化为[主机字节序]时,一定要注意是否需要转换。网络字节序是确定的。

[网络字节顺序]是TCP/IP中规定好的一种数据表示格式,它与具体的[CPU类型]、[操作系统]等无关,从而可以保证数据在不同主机之间传输时能够被正确解释。网络字节顺序采用big-endian(大端)排序方式。

相关文章

  • iOS二进制高位在后面

    最近和服务端做了socket通信,处理packet时遇到了二进制高位不统一的问题, 后来查了下,其实是不同平台之间...

  • 负数的二进制表示

    在二进制里,最高位为符号位,用0和1 来表示正负,最高位为 1 代表负数,最高位为 0 代表正数。 负数的二进制表...

  • 反码 补码

    正数的反码,补码都是正数的二进制本身 负数的二进制:负数的绝对值所对应的二进制最高位变成1 负数的反码:最高位不变...

  • SnowFlake 深入理解

    SnowFlake算法 1位 不用, 二进制的最高位 1 代表的是负数, 生成的 ID 一般都是整数, 所以最高位...

  • iOS美团同款"ZSource"二进制调试实现

    iOS美团同款"ZSource"二进制调试实现iOS美团同款"ZSource"二进制调试实现

  • 负数的二进制表示方法

    负数表示不是简单地将最高位变为1,比如: 1)byte a=-1,如果只是将最高位变为1,二进制应该是100000...

  • 链表模拟二进制加法及C#的实现

    问题分析 建链表:二进制数可用带头节点的单链表存储,第一个节点存储二进制数的最高位。 二进制数加1运算规则:从低位...

  • 二进制负数

    二进制负数 由原码的补码表示 原码:正数-数字的绝对值转换为二进制负数-数字的绝对值转换为二进制后最高位补1例:5...

  • EFLAGS寄存器

    EFLAGS寄存器 记住这几个标志寄存器的位置和名字, 以下看的都是二进制。需转为二进制 1、c位:高位进位--借...

  • 十进制,二进制,以及相互转换

    二进制 计算机以二进制补码的形式保存所有的整数 正数的原码、反码、补码都相同 原码:最高位符号位,正数为0,负数为...

网友评论

      本文标题:iOS二进制高位在后面

      本文链接:https://www.haomeiwen.com/subject/izvppltx.html