• C/C++ 关于大小端模式


    大端模式:  数据的高字节存在低地址  数据的低字节存在高地址

    小端模式:  数据的高字节存在高地址  数据的低字节存在低地址

    如图,i为int类型占4个字节,但只有1个字节的值为1,另外3个字节值为0;取出低地址上的值,当其为1时则为小端模式,为0时为大端模式。

    //大小端模式的判断
    //方法一:利用联合体所有成员的起始位置一致,
    //对联合体中的int类型赋值,然后判断联合体中char类型的值的大小
    
    void SysCheck()
    {
    	union IsLitte_Endian
    	{
    		int i;
    		char c;
    	};
    	IsLitte_Endian Check;
    	Check.i = 1;
    	bool Flag=Check.c == 1;	//Flag为true表示是小端模式,Flag为false表示为大端模式,此时Flag为true。
    	return;
    }


    //方法二:利用强制类型转换判断
    //与共用体判断类似
    bool IsLitte_Endian()
    
    {
    
    	int Wvar = 0x12345678;
    
    	short *Pvar = (short*)&Wvar;
    
    	return !(0x1234 == Pvar[0]);
    
    }


    此时说明该编译器为小端模式

    CSDN地址:http://blog.csdn.net/lyl_312/article/details/51405553

  • 相关阅读:
    Linux下安装配置jdk
    Linux基础实验(二)
    Linux基础命令(一)
    Linux基础实验(一)
    QT 参考资料
    C++ const_cast用法(转)
    05 内嵌汇编的编程
    构造函数和析构函数可以调用虚函数吗(转)
    C++之迭代器(Iterator)篇 (转)
    链接脚本
  • 原文地址:https://www.cnblogs.com/lyl-312/p/5515015.html
Copyright © 2020-2023  润新知