Little_endian和Big_endian的區別和C測試程式
這裡簡單的進行描述一下也加深記憶
Little_endian:不管在記憶體和磁碟中儲存都是記憶體的低地址儲存數值的低位數
Big_endian:不管在記憶體和磁碟中儲存都是記憶體的低址儲存數值的高位數
注意這裡是數值,字串沒有這樣的問題。
比如626C 低位數就是6C高位數就是62
比如我們要儲存
0x626c
記憶體地址
低---------------->高
Little_endian
6C 62
Big_endian
62 6C
我們用如下的程式進行驗證
輸出為:
lb is test srting l's ascii is 6c,b's ascii is 62
short number is 626c
Little_endian
我是LINUX下面跑的,用WINDOWS跑也是一樣的。
LINUX和WINDOWS都是Little_endian,佔時沒在AIX這樣的Big_endian測試
我們可以到我們的字串輸出任然是lb,l 的ascii是6c,b的ascii是62 ,但是當轉換為數字short int後
顯示為626c,那麼我們可以確認他為小端Little_endian。
可以參考
http://blog.163.com/yuyi_vc/blog/static/170371753201182511825105/
Little_endian:不管在記憶體和磁碟中儲存都是記憶體的低地址儲存數值的低位數
Big_endian:不管在記憶體和磁碟中儲存都是記憶體的低址儲存數值的高位數
注意這裡是數值,字串沒有這樣的問題。
比如626C 低位數就是6C高位數就是62
比如我們要儲存
0x626c
記憶體地址
低---------------->高
Little_endian
6C 62
Big_endian
62 6C
我們用如下的程式進行驗證
點選(此處)摺疊或開啟
-
#include<iostream>
-
#include <string.h>
-
#include<stdlib.h>
-
#include<stdio.h>
-
using namespace std;
-
-
bool check(void)
-
{
-
char* test = new char[2];
-
strcpy(test,"lb");
-
short *m=(short *)test;
-
-
-
printf("%s is test srting %c's ascii is %x,%c's ascii is %x\n",test,test[0],test[0],test[1],test[1]);
-
printf("short number is %x\n",*m);
-
-
-
if(*m == 0x626c)
-
{
-
return false;
-
}
-
else if(*m == 0x6c62)
-
{
-
return true;
-
}
-
else
-
{
-
printf("UNKOWN ERROR!\n");
-
exit(1);
-
}
- delete [] test;
-
}
-
-
-
int main(void)
-
{
-
if(check())
-
{
-
printf("Big_endian\n");
-
}
-
printf("Little_endian\n");
-
return 0;
- }
輸出為:
lb is test srting l's ascii is 6c,b's ascii is 62
short number is 626c
Little_endian
我是LINUX下面跑的,用WINDOWS跑也是一樣的。
LINUX和WINDOWS都是Little_endian,佔時沒在AIX這樣的Big_endian測試
我們可以到我們的字串輸出任然是lb,l 的ascii是6c,b的ascii是62 ,但是當轉換為數字short int後
顯示為626c,那麼我們可以確認他為小端Little_endian。
可以參考
http://blog.163.com/yuyi_vc/blog/static/170371753201182511825105/
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/7728585/viewspace-2124159/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- big_endian和little_endian的說明(轉載)
- 介面測試和效能測試的區別
- 介面測試和功能測試的區別
- 安全測試和滲透測試的區別
- 測試方案和測試計劃的區別
- 遊戲測試和軟體測試的區別遊戲
- Web 和移動應用程式測試之間的區別Web
- 遊戲測試和軟體測試有什麼區別?遊戲
- 軟體驗收測試和系統測試的區別點
- 福祿克的驗證測試和認證測試的區別
- 4大軟體測試策略的特點和區別(單元測試、整合測試、確認測試和系統測試)
- C和C++區別C++
- 測試物件和測試級別物件
- APP測試和傳統軟體測試有什麼區別APP
- 什麼是滲透測試和安全測試,有何區別?
- 軟體確認測試、系統測試和驗收測試有什麼區別和關係?
- 福祿克線纜驗收測試、鑑定測試和認證測試的區別
- C/C++——sizeof和strlen的區別C++
- Cookie和Session的區別以及設計測試用例CookieSession
- C++中運算子 &和&&、|和|| 的區別C++
- iOS10公測版、測試版和正式版的區別iOS
- 【網路安全】軟體測試和滲透測試有什麼區別?
- 軟體和程式的區別
- 程式猿和黑客的區別!!!黑客
- 軟體驗收測試和系統測試有什麼聯絡和區別?專業軟體測試公司安利
- ../和./和/的區別
- C/S和B/S應用程式的本質區別
- C/C++引用和指標的聯絡和區別C++指標
- 第三方軟體測評▏web測試和app測試的區別你知道嗎?WebAPP
- c#中值型別和引用型別的區別C#型別
- C++中break和continue的用法和區別C++
- APP測試中IOS和Android的區別,有哪些注意點?APPiOSAndroid
- 功能測試和非功能測試區別簡析,上海好口碑軟體測試公司推薦
- C#中Hashtable和HashMap的區別C#HashMap
- C++中的return和exit區別C++
- c++中指標和引用的區別?C++指標
- C++中 struct 和 class 的區別C++Struct
- C++中指標和引用的區別C++指標