zoukankan      html  css  js  c++  java
  • 代码实现判断主机字节序(大端 or小端 )-- 面试题

    字节序有两种表示方法:大端法(big ending),小端法(little ending)。

    网络字节序采用的是大端法。

    主机字节序不同的CPU采用的方法不一样,可以通过代码来查看自己主机的字节序。

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

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

    看一个unsigned short 数据,它占2个字节,给它赋值0x1234。

    若采用的大端法,则其低地址端应该存放的是0x12;

    若采用的小端法,则其低地址端应该存放的是0x34;

    可以通过联合体来获得其高低地址的数据。

    测试主机字节序的代码:

    #include <stdio.h>
     
    typedef union{
    	unsigned short value;
    	unsigned char bytes[2];
    }Test;
     
    int main(void)
    {
        Test test_value;
        test_value.value = 0x1234;
     
        if(test_value.bytes[0] == 0x12 && test_value.bytes[1] == 0x34)
        	printf("big ending");
        else if(test_value.bytes[0] == 0x34 && test_value.bytes[1] == 0x12)
        	printf("little ending");
        else
        	printf("use test_value error");
        return 0;
    }
    
    千里之行,始于足下!
  • 相关阅读:
    电商项目面试题 及mysql面试题 太难没啥用
    fastDFS配置及日志查看 所遇到的问题
    fastDFS
    比较难的问题
    基础面试题
    难度比较大的面试题(2)
    项目功能介绍 非常有用
    Hibernate和Mybatis区别 详细 有用
    mysql和oracle的区别
    TCP/IP Note4
  • 原文地址:https://www.cnblogs.com/MINAIot/p/13040987.html
Copyright © 2011-2022 走看看