标签:测试计算机是小端存储还是大端存储 设计程序 计算机 公开赛 中国 国际
一.理解大端存储和小端存储的概念
1).大端存储:大端模式,是指数据的高字节保存在内存的低地址中,而数据的低字节保存在内存的高地址中,这样的存储模式有点儿类似于把数据当作字符串顺序处理:地址由小向大增加,而数据从高位往低位放。
2).小端存储:小端模式,是指数据的高字节保存在内存的高地址中,而数据的低字节保存在内存的低地址中,这种存储模式将地址的高低和数据位权有效地结合起来,高地址部分权值高,低地址部分权值低,和我们的逻辑方法一致。
二.设计程序测试计算机是大端存储还是小端存储
1.输入数据1作为测试数据。
1).1的类型为int型,在计算机中存储使用4个字节存储(00000001)。我们可以将int型转化成char类型,让它读取一个字节。如果是01,难么就是小端存储。如果是00,那么就是大端存储。
2).可以用union来解决。同样是存储(000000001)。
2.代码实现部分
#include<stdio.h>//查看计算机是什么储存方式 //对应1). int mem_cheak() { int i = 1; char *ptr = (char *)(&i); if (*ptr == 1) { return 1; } else if (*ptr == 0) { return 0; } } int main() { int ret = mem_cheak(); if (ret == 1) { printf("little\n"); } else { printf("big\n"); } system("pause"); return 0; }
#include<stdio.h> int sys_check() { union UN { int i; char c; }un; un.i = 1; if (un.c == 1) { return 1;//返回1表示小端 } else { return 0;//返回0表示大端 } } int main() { int ret = sys_check(); if (ret == 1) { printf("little\n"); } else { printf("big\n"); } system("pause"); return 0; }
以上就是本人在学习过程中的一些经验总结。当然,本人能力有限,难免会有纰漏,希望大家可以指正。
本文出自 “做一个小小小司机” 博客,请务必保留此出处http://10799170.blog.51cto.com/10789170/1715734
标签:测试计算机是小端存储还是大端存储 设计程序 计算机 公开赛 中国 国际
原文地址:http://10799170.blog.51cto.com/10789170/1715734