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;
    }
    
    千里之行,始于足下!
  • 相关阅读:
    v-chart使用的相关实例
    v-chart从后台获取数据
    算法题-单词搜索
    关于前端开发的一些小经验总结
    element的input中加入可点击的按钮
    vue.js的入门
    链表问题(算法题)
    同构词分类
    最长不降序子列的改编(dp数组的使用)
    Ubuntu安装Git
  • 原文地址:https://www.cnblogs.com/MINAIot/p/13040987.html
Copyright © 2011-2022 走看看