Golang 主机字节序的判断
发布日期:2021-06-29 19:23:47 浏览次数:3 分类:技术文章

本文共 446 字,大约阅读时间需要 1 分钟。

字节序按类别分两种,一种是小端(Little Endian),另一种是大端(Big Endian)。

(1)小端字节序,指一个单元在计算机中存放时按照低位在低地址,高位在高地址的模式存放;
(2)大端字节序,指一个单元在计算机中存放时按照低位在高地址,高位在低地址的模式存放。

字节序按应用场景也分两种,一是网络字节序,二是主机字节序。网络字节序为大端字节序,是确定的。主机字节序由 CPU 架构决定,可能是小端,也可能是大端,常用的 Intel 与 AMD 的 CPU 均为小端字节序。

下面以 Golang 为例,实现主机字节序的判断。

import "unsafe"func IsLittleEndian() bool {	n := 0x1234	return *(*byte)(unsafe.Pointer(&n)) == 0x34}

注意,Golang 是强类型语言,不允许不同类型的指针之间进行强制转化,因此需要借助 unsafe.Pointer 进行一次中转。


参考文献

[1]

转载地址:https://dablelv.blog.csdn.net/article/details/94313351 如侵犯您的版权,请留言回复原文章的地址,我们会给您删除此文章,给您带来不便请您谅解!

上一篇:Golang bytes.Buffer 用法精述
下一篇:C 移位运算

发表评论

最新留言

路过,博主的博客真漂亮。。
[***.116.15.85]2024年04月21日 06时58分43秒

关于作者

    喝酒易醉,品茶养心,人生如梦,品茶悟道,何以解忧?唯有杜康!
-- 愿君每日到此一游!

推荐文章

URL统一资源定位符、URI统一资源标识符和URN统一资源命名之前的联系和区别 2019-04-30
grid布局介绍(容器、项目、网格线、单元格、容器和项目属性template-columns|rows相关函数和相关关键字\gap\areas\flow\content\justify\align) 2019-04-30
ES6 let注意点、解构(重命名、默认值、结构给已有变量)、模块化(注意点、导入导出语法)、对象属性扩展写法 2019-04-30
知乎热议:未来3到5年内,哪个方向机器学习人才最稀缺? 2019-04-30
推荐几款好用的文本编辑器 2019-04-30
上海有哪些牛逼的互联网公司? 2019-04-30
美团外卖批量投放智能安全头盔:骑手可语音处理订单 2019-04-30
指甲盖大小塞了500亿晶体管!领先台积电,IBM打造世界首款2纳米芯片!能耗仅为7纳米的1/4!... 2019-04-30
武汉最牛批的互联网基本都在这了~ 2019-04-30
全网最全Python操作Excel教程,建议收藏! 2019-04-30
导弹如何自动追踪目标?这其实是个数学问题 2019-04-30
Mac电脑使用:Mac电脑查看本机的IP和公网IP的方法 2019-04-30
前端开发:自定义时间轴的使用 2019-04-30
Flutter开发:iOS 14+系统的iPhone在debug模式下运行App报错的解决方法 2019-04-30
Mac电脑使用:Mac电脑查看本机的IP和公网IP的方法 2019-04-30
NOI 2020 解题报告 2019-04-30
一道神奇的几何题 2019-04-30
【UR #5】怎样跑得更快 题解 2019-04-30
二分图经典技巧 2019-04-30
Codeforces Round #728 (Div. 1) B Tree Array 题解 2019-04-30