写一个函数判断机子大小端的问题

来源:互联网 发布:javascript 电子书 编辑:程序博客网 时间:2024/05/13 01:19

小端机就是存放数据时, 数据的低位存在低地址,高位存在高地址

大端机就是存放数据时, 数据的低位存在高地址,高位存在低地址

这里写图片描述
代码如下:

#include<stdio.h>#include<stdlib.h>void port(){    int a = 1;    int b = (char)a;    if(b == 1)        printf("小端\n");//低位存在低地址,高位存在高地址    else        printf("大端\n");//低位存在高地址,高位存在低地址}int main(){    port1();    system("pause");    return 0;}

一个int型变量占四个字节,一个char型变量占一个字节,将一个int型变量强转为char类型的变量时,只保留低8位。 如果是小端存储,1
的低八位为00000001,转成char类型的二进制低八位就为00000001。如果是大端存储,1
的低八位为00000000,转成char类型的低八位为00000000。

//也可以用联合体来判断。

void port1(){    union n    {        int a;        char c;    };    union n ss;    ss.a = 1;    if(ss.c == 1)        printf("小\n");    else        printf("大\n");}
原创粉丝点击