博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
学习笔记 | 大端、小端模式
阅读量:3786 次
发布时间:2019-05-22

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

Big-Endian和Little-Endian的定义如下:

  1. Big-Endian(大端模式)就是高位字节排放在内存的低地址端低位字节排放在内存的高地址端
  2. Little-Endian(小端模式)就是低位字节排放在内存的低地址端高位字节排放在内存的高地址端

举一个例子,比如数字0x12 34 56 78在内存中的表示形式为:

  1. 大端模式:

    低地址 -----------------> 高地址 0x12  |  0x34  |  0x56  |  0x78
  2. 小端模式:

    低地址 ------------------> 高地址 0x78  |  0x56  |  0x34  |  0x12
  • 可见,大端模式和字符串的存储模式类似。
  • 每两个16进制数表示一个字节。

区分大小端机器了,代码如下:

#include 
int main(){
int data = 1; char* p = (char*)&data; if(*p == 1) {
printf("小端机器\n"); } else if(*p == 0) {
printf("大端机器\n"); } return 0;}

或者union验证

bool IsBigEndian(){
union NUM{
int a; char b; }num; num.a = 0x1234; if( num.b == 0x12 ){
printf("大端机器\n"); return true; } printf("小端机器\n"); return false; }

转载地址:http://piztn.baihongyu.com/

你可能感兴趣的文章
SpringCloud Alibaba Nacos 服务注册和配置中心
查看>>
poi读写Excel
查看>>
使用Security安全框架实现权限登录
查看>>
JDBC工具类 使用Durid连接池链接MySQL数据库
查看>>
ANSYS——模态提取方法简介
查看>>
ANSYS——初学路径之路径的定义、作用以及ansys路径模块GUI的操作解释
查看>>
ANSYS——网格划分的不同方法以及GUI模块的操作(自由网格、映射网格、扫掠、拖拉)
查看>>
ANSYS——命令流学习(材料属性设置、建模的命令流)
查看>>
ANSYS——杆单元简介与示例(含新版本2019版本杆实常数设置、ANSYS help的使用、单元列表使用的举例)
查看>>
ANSYS——后处理中单元表(ELEMENT table)的作用、创建、使用
查看>>
在VScode上配置golang的开发环境
查看>>
leetcode每日一题---680. 验证回文字符串 Ⅱ
查看>>
leetcode每日一题---15. 三数之和
查看>>
leetcode每日一题---面试题 16.18. 模式匹配
查看>>
地主的钱袋
查看>>
招新成绩统计
查看>>
webpack
查看>>
go部署
查看>>
配置swagger--go语言
查看>>
打印杨辉三角
查看>>