`
AvinDev
  • 浏览: 112371 次
社区版块
存档分类
最新评论

Big Endian & Little Endian 笔记

阅读更多
突然想做IP库的解析,用Erlang,自然就碰到了Big Endian & Little Endian的事

IP在DB文件中是以little endian存储的,跟搜索的IP比较时需要转换为一个Int值,Python代码可以这样:
ip = unpack('I', buf)[0]

将一个IP串转换为Int值,则是
ip = unpack('!I', socket.inet_aton(ip))[0]

两者都转换为int之后就可以直接比较了

Erlang里面可以用Binary进行匹配,非常方便。

Little Endian 存储的Binary转Int:
1> <<Int:4/little-integer-unit:8>> = <<204,0,168,192>>.
<<204,0,168,192>>
2> Int.
3232235724


IP转int可以这样:
1> <<Int:4/big-integer-unit:8>> = <<192,168,0,204>>.
<<192,168,0,204>>
2> Int.
3232235724

分享到:
评论

相关推荐

    DICOM文件.rar

    DICOM文件的字节顺序分为BigEndian(大端模式)和LittleEndian(小端模式)。LittleEndian格式在DICOM文件中意味着数据的低字节存储在内存的低地址,而高字节存储在高地址。这种排列方式与许多现代计算机系统(如...

    androidOpenGLES笔记1-基础.pdf

    同时,Buffer还可以根据字节顺序(Big Endian或Little Endian)进行数据读写,确保跨平台兼容性。 总的来说,OpenGL ES是移动设备图形编程的核心,它提供了一套标准的API来创建复杂的2D和3D图形。理解其核心概念如...

    C语言学习笔记

    ### C语言学习笔记 在学习C语言的过程中,经常会遇到一些难以理解或容易混淆的概念与用法。下面将根据提供的描述和部分代码内容,详细解析其中涉及的重要知识点。 #### 预处理指令与头文件包含 预处理指令是在...

    Appendix A ISA and Memory Notes.pdf

    文档进一步讨论了内存寻址的不同方式,包括大端模式 (Big Endian) 和小端模式 (Little Endian)。 1. **大端模式 (Big Endian)**: - 最重要的字节(big end)位于最小的地址处。 - 大端模式下,多字节实体按顺序...

    DICOM学习资料整理,快速上手教程,学习笔记

    而在小端模式(Little Endian)中,低位字节存储在低地址位置。 #### DICOM中的数据形式详解 DICOM定义的27种基本数据形式(VRs)涵盖了各种类型的医疗数据,每种形式都有其特定的表示和使用场景。例如: 1. **...

    unix 网络编程笔记

    - 计算机系统中有两种不同的字节序类型:大端(Big-endian)和小端(Little-endian)。 - 大端模式下,高位字节存储在内存的低地址处;小端模式则相反。 - 网络通信需要统一的字节序处理方式,一般采用网络字节序...

    天行网安公司_嵌入式-常用知识&面试题库_大厂面试真题.doc

    在计算机系统中,大端序(Big Endian)和小端序(Little Endian)是两种不同的存储方式: * 大端序:高字节在前,低字节在后 * 小端序:低字节在前,高字节在后 这两种存储方式在不同的系统中使用,例如,网络协议...

    java版bs公交服务网源码-full-stack:全栈

    big-endian (BE) 或 little-endian (LE)。 大端系统将字的最高有效字节存储在最小的内存地址处,将最低有效字节存储在最大的位置。 相反,小端系统将最低有效字节存储在最小地址处。 字节序也可用于描述比特在通信...

    FX_H743_Core_SD.zip

    FileX支持多种存储介质,如FAT、FAT32、exFAT和Little/Big Endian的NTFS,使得在嵌入式系统中读写文件变得可能,为应用程序提供了类似Windows或Linux的文件操作功能。 4. **Cube MX**:是STMicroelectronics提供的...

    Python标准库笔记struct模块的使用

    字节顺序通常有小端(Little-endian)和大端(Big-endian)两种,网络传输时通常采用大端字节序。格式化字符串中的第一个字符可用于指定填充数据的字节顺序、大小和对齐方式。如果格式符中没有指定,struct模块将...

    python-bitstream-analysis:展示纯Python比特流分析的Jupyter笔记本系列

    3. **字节序和字节操作**:在处理比特流时,我们经常需要考虑字节顺序,即大端(Big-Endian)和小端(Little-Endian)。Python的`struct`模块可以帮助我们进行字节对齐和字节顺序的处理,例如打包和解包二进制数据。...

Global site tag (gtag.js) - Google Analytics