首页 > 编程语言 >[C/C++] 判断电脑存储模式(大端/小端)

[C/C++] 判断电脑存储模式(大端/小端)

时间:2023-04-03 11:24:10浏览次数:32  
标签:小端 存储 point int uint8 C++ num include

C语言版本:

#include <stdio.h>
#include <inttypes.h>

int main() {
    uint32_t num = 0xaabbccdd;                      // 字节方向:高->低,也就是aa是高字节,dd是低字节
    uint8_t *point = (uint8_t*)(&num);
    for (int i = 0; i < sizeof(num); ++i) {         // 低地址开始输出
        printf("%hx", point[i]);
    }
    /**
     * 大端(高字节存放在低地址)输出为:   aabbccdd
     * 小端(低字节存放在低地址)输出为:   ddccbbaa
     */ 
    return 0;
}

 

C++版本:

#include <iostream>
#include <inttypes.h>
using namespace std;

int main() {
    uint32_t num = 0xaabbccdd;                      // 字节方向:高->低,也就是aa是高字节,dd是低字节
    uint8_t *point = (uint8_t*)(&num);
    for (int i = 0; i < sizeof(num); ++i) {         // 低地址开始输出
        cout << hex << (int)point[i];
    }
    /**
     * 大端(高字节存放在低地址)输出为:   aabbccdd
     * 小端(低字节存放在低地址)输出为:   ddccbbaa
     */ 
    return 0;
}

 

标签:小端,存储,point,int,uint8,C++,num,include
From: https://www.cnblogs.com/chasemeng/p/17282552.html

相关文章

  • ORACLE之PACKAGE-包、存储过程、函数
    原文地址:https://www.cnblogs.com/hoaprox/p/5316444.html1,简单的包。创建包规范:createorreplacepackagepack_test1is--定义过程1procedurep_test1(p_1invarchar2);--定义函数1functionf_test1(p_1invarchar2)returnvarchar2;endpack_test1;......
  • 【测试】主流数据库存储过程编写样例(Oracle、MySQL、SQL Server)
    这个...做测试其实有时候还是需要先弄点数据才好针对某些功能进行测试的(相信做过开发的都应该深有体会)。一般像我这种老油条都推荐使用存储过程来做的初始化数据,一来脚本不会骗人,二来可以通过另一种方式验证逻辑关系。下面将整理了三个主流数据库(Oracle、MySQL和SQLServer)的“单表......
  • c++ async future get
    #include<chrono>#include<ctime>#include<future>#include<iomanip>#include<iostream>#include<sstream>#include<string>#include<unistd.h>#include<uuid/uuid.h>std::stringget_time_now(){......
  • C++
    同名的namespace(名字空间/命名空间)有自动合并(为了声明和定义可以分开写)在项目中函数名、全局变量、结构、联合、枚举、类,非常有可能名字冲突,而名字空间就对这些逻辑空间划分(不是物理单元划分),为了解决命名冲突,C++之父为防止命名冲突给C++设计一个名注意:namespace(名字空间/......
  • [2022年蓝桥杯C/C++ A组]个人做题记录
    碎碎念欸嘿,鸽了小半年去做了一些不喜欢的事情,但兜兜转转,还是acm最香捏求和题意求\(\sum_{i=1}^n\sum_{j=1}^na_i*a_j(i!=j)\)题解感觉是去年的时候笨人唯一做满分的题……经典前缀和,设\(sum[i]=\sum_{j=i}^na[j]\),答案即为\(\sum_{i=1}^{n-1}a[i]*sum[i+1]\)#definein......
  • C++学习笔记
    char和string的区别字符串string:C++string详解,C++字符串详解(biancheng.net)string是字符串类型,是在C的基础上对字符数组做封装,是一个类,有自己的函数,存的是一个完整的字符串,确实是由字符组成的,但不能认为里面是一个个char数据类型组成的。因而单拎出来里面的字符不能认为是cha......
  • oracle存储过程调试无法进入,oracle存储过程无法调试
    问题:使用pl/sqldeveloper调试oracle 存储过程。在存储过程上点右键,选调试(test),然后按f9(debug)。这是正常的话,那些run、stepinto等按钮就可以点了,或者点run到断点,或者点stepinto做单步跟踪。但是在一个oraclerac双机环境中调试一个存储过程,点f9后有时能继续run或者stepint......
  • Springboot 系列 (27) - Springboot+HBase 大数据存储(五)| HBase REST 服务
    REST(RepresentationalStateTransfer)即表述性状态传递,是RoyFielding博士2000年在他的博士论文中提出来的一种软件架构风格。它是一种针对网络应用的设计和开发方式,可以降低开发的复杂性,提高系统的可伸缩性。在三种主流的Web服务实现方案中,与复杂的SOAP和XML-RPC相......
  • 使用 SK 示例 探索 GitHub 存储库 中的机器人
    微软3月22日一篇文章“Semantic-kernel嵌入和记忆:使用聊天UI探索GitHubRepos”[1],文章中进行了展示了嵌入,该文章解释了他们如何帮助开发人员提出有关GitHub存储库的问题或使用自然语言查询探索GitHub存储库。与嵌入一起,这是在SK存储器[2](嵌入集合)的帮助下完成的,这有助于为提......
  • KVM的存储选项
     KVM的存储选项有多种,包括虚拟磁盘文件、基于文件系统的存储和基于设备的存储。为实现KVM(Kernel-basedVirtualMachine)存储管理,可以使用LVM(LogicalVolumeManager)和创建存储池。当系统创建KVM虚拟机的时候,默认使用虚拟磁盘文件作为后端存储。安装后,虚拟机认为在使用真......