1.什么是大端,什么是小端?

大端:数据的高位字节存放在低地址内,数据的低位字节存放在高地址内。

小端:数据的高位字节存放在高地址内,数据的低位字节存放在低地址内。

一个整型是4个字节,如:0x1a2b3c4d。电脑读取内存数据时,是从低位地址到高位地址进行读取(从左到右)。

在小端机器中从低地址到高地址的存放方式为:0x4d,0x3c,0x2b,0x1a;(低地址存低位)

在大端机器中从低地址到高地址的存放方式为:0x1a,0x2b,0x3c,0x4d;(低地址存高位)

2.方法一:将字符数据赋给整型数据,通过读取整型数据的值来判别大端还是小端

#include<iostream>
using namespace std;
int main()
{unsigned int data = 0;unsigned int *point = &data;*(char*)point = 0x22;if(data == 0x22)cout << "这是一个小端机" << endl;else if(data == 0x22000000)cout << "这是一个大端机" << endl;elsecout << "无法判定该机器类型" << endl;return 0;
}

3.方法二:通过联合体的共享内存特性,来判断大端机、小端机

union是一个联合体,所有变量公用一块内存,在内存中的存储是按最长的那个变量所需要的位数来开辟内存的。

#include<iostream>
using namespace std;union UN{char ch;int data;
};int main()
{union UN un;un.data = 0x1a2b3c4d;if(un.ch == 0x4d)cout << "这是一个小端机" << endl;else if(un.ch == 0x1a)cout << "这是一个大端机" << endl;elsecout << "无法判定该机器" << endl;return 0;
}

4.方法三:通过指针来判断

将一个整型数据赋给字符型数据,通过查看字符型数据的值来判定是大端机还是小端机。将整型赋给字符型,会发生数据的丢失。如果是大端机,则会丢失低字节;如果是小端机,则会丢失高字节。和第一种方法很类似,一个是查看整型的值,一个是查看字符型的值。

int main()
{int data = 1;char* p = (char*)&data;if(*p == 1)cout << "这是一个小端机" << endl;else if(*p == 0)cout << "这是一个大端机" << endl;return 0;
}

输出结果:

~O(∩_∩)O~

使用C语言判断一个机器是大端机还是小端机相关推荐

  1. 题目:如何判断一个机器是大端还是小端

    如何判断一个机器是大端还是小端 关于大端小端的概念, 小端:数据的高位字节存放在高地址内,数据的低位字节存放在低地址内. 大端:数据的高位字节存放在低地址内,数据的低位字节存放在高地址内. 典型的体系 ...

  2. 大端机与小端机介绍及其判断(C)

    为什么会有大小端模式之分呢? 这是因为在计算机中,我们是以字节为单位的,每个地址单元都对应着一个字节,一个字节为 8 bit.但是在C 语言中除了 8 bit 的char之外,还有 16 bit 的 ...

  3. 大端机,小端机;截断与提升

    什么是截断? 通俗一些来说,截断就是将一个长的整形变成一个短整形,在赋值时,长整形的数据中会有一部分没有空间存储,所以在短整形中只能存放低位的数据. 例如: char a = 1; 此时1本身是int ...

  4. 写一个程序判断机器是大端存储还是小端存储

    0x11223344 大端:11 22 33 44          小端:44 33 22 11 #include<iostream>using namespace std;int ma ...

  5. 判断计算机是大端机还是小端机

    这个是把以前写的代码先贴到CSDN上来,具体的后面说,先贴上代码! short int x; //2 bytes char x0, x1; x = 0x1122;//内存低地址单元 x0 = ((ch ...

  6. (c语言)判断一个正整数是否是回文数

    (c语言)判断一个正整数是否是回文数 回文数是指从左到右和从右到左读这个数是一样的.例如:1,101,1221都是回文数. #include<stdio.h> #include<st ...

  7. C语言判断计算机存储是大端还是小端

    计算机的一个int型数据是用多个字节表示的,如果在内存中存放时标称该数据的地址中存放的是数据的最低字节,就叫小端机,反之把高字节存放在标称地址中的则称为大端机.所以可以定义一个int变量,将其地址强制 ...

  8. C语言--测试电脑存储模式(大端存储OR小端存储)

    相信大家都知道大端存储和小端存储的概念,这在平时,我们一般不用考虑,但是,在某些场合,这些概念就显得很重要,比如,在 Socket 通信时,我们的电脑是小端存储模式,可是传送数据或者消息给对方电脑时, ...

  9. C语言之大端模式与小端模式

    大端模式与小端模式的定义(字节序) 大端模式:数据的高字节在低地址,低字节在高地址 小端模式:数据的高字节在高地址,低字节在低地址 怎么判断系统是大端模式和小端模式 首先来看两个知识点: (1)联合体 ...

最新文章

  1. HDU-5723 Abandoned country
  2. 计算机硬件的基本组成
  3. python计算汽车的平均油耗_汽车行车电脑中的平均油耗是按哪个行驶里程计算的?...
  4. AQS理解之六,AQS的其他实现类
  5. 怪事,硬盘上的FC3_cd1的ISO莫名其妙被改变了
  6. 从编解码、传输到基础架构 详解Bigo多媒体技术栈
  7. AspNetCore结合Redis实践消息队列
  8. 【每日一题】8月25日题目精讲 XOR-pyramid
  9. [剑指offer][JAVA][面试题56 - I][第260题][位运算][HashSet]
  10. 扔盘子(51Nod-1279)
  11. javaweb之mysql数据库
  12. Codeforces Beta Round #80 (Div. 1 Only) D. Time to Raid Cowavans 分块
  13. 2022-4-16 c++ 杂记 mutex GUARDED_BY std::unique_ptr unordered_map ::开头
  14. android 手机滤镜
  15. 输出所有3位数的水仙花数,例:153=1的3次方+5的3次方+3的3次方 谭浩强《c语言程序设计》第五章第八题
  16. php realpath()
  17. element框架el-aside高度100%显示
  18. 偏振光学的基础(一)
  19. 从给定网页上下载img src= /格式的图片,并保存到制指定路径
  20. 基于HTML+CSS制作一个简单的家乡网页制作作业,广州介绍旅游网页设计代码 学生个人html静态网页制作成品代码

热门文章

  1. 国标28181:海康、大华、宇视摄像头怎么添加GB28181协议
  2. 我是怎么在千氪上一天赚到5000氪金的?
  3. 暴风集团入多个被执行人名单-千氪
  4. 财务管理html,财务管理.html
  5. 深度学习入门(转)(备用)
  6. python打印标签脚本
  7. 数据外连接 LEFT OUT JOIN 的用法
  8. 2020电工(初级)考试题库及电工(初级)模拟考试题
  9. 此证书已在此前安装为一个证书权威机构
  10. 湖北文理学院数学与计算机科学学院,以德为本严要求 以勤为先勇创新——记湖北文理学院数学与计算机科学学院执行院长 吴 钊-湖北文理学院校报电子版《湖北文理学院报》...