日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

浅谈大端和小端

發(fā)布時間:2025/3/17 编程问答 34 豆豆
生活随笔 收集整理的這篇文章主要介紹了 浅谈大端和小端 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

  最近在看關于大端小端的問題首先請允許我引用一段

一、大端模式和小端模式的起源

? ? ? ? 關于大端小端名詞的由來,有一個有趣的故事,來自于Jonathan Swift的《格利佛游記》:Lilliput和Blefuscu這兩個強國在過去的36個月中一直在苦戰(zhàn)。戰(zhàn)爭的原因:大家都知道,吃雞蛋的時候,原始 的方法是打破雞蛋較大的一端,可以那時的皇帝的祖父由于小時侯吃雞蛋,按這種方法把手指弄破了,因此他的父親,就下令,命令所有的子民吃雞蛋的時候,必須 先打破雞蛋較小的一端,違令者重罰。然后老百姓對此法令極為反感,期間發(fā)生了多次叛亂,其中一個皇帝因此送命,另一個丟了王位,產生叛亂的原因就是另一個 國家Blefuscu的國王大臣煽動起來的,叛亂平息后,就逃到這個帝國避難。據(jù)估計,先后幾次有11000余人情愿死也不肯去打破雞蛋較小的端吃雞蛋。 這個其實諷刺當時英國和法國之間持續(xù)的沖突。Danny Cohen一位網(wǎng)絡協(xié)議的開創(chuàng)者,第一次使用這兩個術語指代字節(jié)順序,后來就被大家廣泛接受。

?

二、什么是大端和小端

  大端是將存儲數(shù)據(jù)的低位存放在高地址上,高位存放在低地址上,如int a= 0x12345678這個十六進制的數(shù)分為4份

0x12   0x34   0x56  0x78(數(shù)據(jù)的低位) 

低地址    ->      高地址

感覺像是字符串是存放方式"0x12345678" 是字符串依次存放

  小端是將數(shù)據(jù)的低位存放在低地址,高位存放在高地址上.如int a= 0x12345678這個十六進制的數(shù)分為4份

0x78(數(shù)據(jù)的低位)   0x56   0x34  0x12          //一開始我居然不知道十六進制的數(shù)據(jù)居然是從右往左

低地址    ->      高地址  

這類更加符合我們的邏輯思維,而且一般的*86的都是小端

編寫一個程序判斷

1

#include <stdio.h>
int main (void)
{
?? ?int a = 0x12345678;
?? ?int *c = a;
?? ?short *b = NULL;
?? ?b = (short *) c;
?? ?if (b == 0x5678)
?? ??? ?printf ("Big Endian\n");
?? ?else
?? ??? ?printf ("Little Endian\n");
?? ?return 0;
?? ??? ?
}
因為共用體union所有成員存放順序從低地址存放

#include <stdio.h>
union st
{
?? ?int a;
?? ?char b;
} s;
int main (void)
{
?? ?s.a = 0x1234;
?? ?if (s.b == 0x34)
?? ??? ?printf ("Llttle Endian!\n");
?? ?else
?? ??? ?printf ("Big Endian!\n");
?? ?return 0;
}

?

?

?

?

轉載于:https://www.cnblogs.com/tony1/p/3726678.html

總結

以上是生活随笔為你收集整理的浅谈大端和小端的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內容還不錯,歡迎將生活随笔推薦給好友。