判断大端与小端

//写一个程序判断编译器是大端还是小端
#include<stdio.h>
#include<stdlib.h>

int main()
{
	int a = 0x11223344;
	char *p = (char*)&a;
	if (*p == 0x11)
	{
		printf("大端");
	}
	else
	{
		printf("小端");
	}
	system("pause");
	return 0;
}

大于一个字节的程序都存在大端小端存储,大端即高位放在地位存储,低位放在高位存储,而小端相反

int a=1;//0x00000001

如果是小端存储则输出01,若是大端则输出0x

时间: 2024-08-22 20:41:09

判断大端与小端的相关文章

【转】如何判断CPU是大端还是小端模式

原文网址:http://blog.csdn.net/ysdaniel/article/details/6617458 如何判断CPU是大端还是小端模式 http://blog.sina.com.cn/s/blog_66a61f310100i7m0.html MSB:Most Significant Bit  ------- 最高有效位    LSB:Least Significant Bit ------- 最低有效位 大端模式(big-edian) big-endian:MSB存放在最低端的地

如何判断主机是大端还是小端(字节序)

[转帖来自]:http://blog.csdn.net/forestlight/article/details/6933528 今天看<linux程序设计>中关于跨平台需要注意的事项,看到了大端小端的问题.突然想起实验室一同学的笔试题,如何判断主机的大端还是小端. 所谓大端就是指高位值在内存中放低位地址,所谓小端是指低位值在内存中放低位地址.比如0x12345678在大端机上是12345678,在小端机上是78564312,而一个主机是大端还是小端要看cpu类型以及运行在上面的操作系统.同一款

判断系统是大端还是小端的两种方法

#include <iostream> #include <stdio.h> #include <malloc.h> #include <string.h> using namespace std; //判断系统是大端还是小端:通过将&int转换为char* int fun() { int num = 1; // *((char*)&num)获得num的最低字节,为0x00,说明是大端 为0x01,说明是小端 return *((char*)

判断CPU 是小端存储(Little endian)还是大端存储(Big endian)模式

第一个版本: //return true in big-endian machines bool check_big_endian1() { int a = 0; int *p = &a; *(char *)p = 1; return a != 1; } 采用union的第二个版本: //return true in big-endian machines bool check_big_endian2() { union{ int a; char b; }var;//sizeof(var)=4

用C语言,如何判断主机是 大端还是小端(字节序)

所谓大端就是指高位值在内存中放低位地址,所谓小端是指低位值在内存中放低位地址.比如 0x12345678 在大端机上是 12345678,在小端机上是 78564312,而一个主机是大端还是小端要看CPU类型以及运行在上面的操作系统.同一款CPU在不同的操作系统使用的大小端情况是不同的.当然我们通常使用的 x86 + windows是小端. 测试大小端一般使用 union的特性.union是一个联合体,所有变量公用一块内存,只是在不同的时候解释不同.其在内存中存储是按最长的那个变量所需要的位数来

大端和小端(big endian little endian)

一.大端和小端的问题 对于整型.长整型等数据类型,Big endian 认为第一个字节是最高位字节(按照从低地址到高地址的顺序存放数据的高位字节到低位字节):而 Little endian 则相反,它认为第一个字节是最低位字节(按照从低地址到高地址的顺序存放据的低位字节到高位字节). 例如,假设从内存地址 0x0000 开始有以下数据:  0x0000         0x0001       0x0002       0x0003  0x12            0x34          

大端和小端(Big endian and Little endian)

一.大端和小端的问题 对于整型.长整型等数据类型,Big endian 认为第一个字节是最高位字节(按照从低地址到高地址的顺序存放数据的高位字节到低位字节):而 Little endian 则相反,它认为第一个字节是最低位字节(按照从低地址到高地址的顺序存放据的低位字节到高位字节). 例如,假设从内存地址 0x0000 开始有以下数据:  0x0000         0x0001       0x0002       0x0003  0x12            0x34          

大端和小端存储

小端存储法——高地址存高字节,低地址存低字节(高存高,低存低)(intel/ARM) 0x表示十六进制 数值:0x12 34 56 78在小端存储器里如何存储 0x8003 0x12 0x8002 0x34 0x8001 0x56 0x8000  0x78 1 BYTE = 8bit 大端存储法——高地址存低字节,低地址存高字节(高存低,低存高)(IBM大型机/网络字节序) 数值:0x12 34 56 78在小端存储器里如何存储 0x8003 0x78 0x8002 0x56 0x8001 0x

【网络编程系列】一:字节顺序的大端与小端表示法

一.字节序 字节序,也就是字节的顺序,指的是多字节的数据在内存中的存放顺序. 在几乎所有的机器上,多字节对象都被存储为连续的字节序列.例如:如果C/C++中的一个int型变量 a 的起始地址是&a = 0x100,那么 a 的四个字节将被存储在存储器的0x100, 0x101,0x102, 0x103位置. 根据整数 a 在连续的 4 byte 内存中的存储顺序,字节序被分为大端序(Big Endian) 与 小端序(Little Endian)两类. 然后就牵涉出两大CPU派系: Motoro