標籤:測試電腦是小端儲存還是大端儲存 設計程式 電腦 公開賽 中國 國際
一.理解大端儲存和小端儲存的概念
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
測試電腦是小端儲存還是大端儲存