C語言-- 大端小端詳解

一、什么是大端和小端

所謂的大端模式,就是高位字節排放在內存的低地址端,低位字節排放在內存的高地址端。

所謂的小端模式,就是低位字節排放在內存的低地址端,高位字節排放在內存的高地址端。

簡單來說:大端——高尾端,小端——低尾端

舉個例子,比如數字 0x12 34 56 78在內存中的表示形式為:

1)大端模式:

低地址 -----------------> 高地址

0x12  |  0x34  |  0x56  |  0x78

2)小端模式:

低地址 ------------------> 高地址

0x78  |  0x56  |  0x34  |  0x12

可見,大端模式和字符串的存儲模式類似。

3)下面是兩個具體例子:

16bit寬的數0x1234在Little-endian模式(以及Big-endian模式)CPU內存中的存放方式(假設從地址0x4000開始存放)為:

內存地址小端模式存放內容大端模式存放內容
0x40000x340x12
0x40010x120x34

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/444434.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/444434.shtml
英文地址,請注明出處:http://en.pswp.cn/news/444434.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

leetcode164. 最大間距 借桶思想秒掉hard題

給定一個無序的數組,找出數組在排序之后,相鄰元素之間最大的差值。 如果數組元素個數小于 2,則返回 0。 示例 1: 輸入: [3,6,9,1] 輸出: 3 解釋: 排序后的數組是 [1,3,6,9], 其中相鄰元素 (3,6) 和 (6,9) 之間都存在最大差值 3。 示例 2: …

C++:18---函數模板(template)

一、模板的定義 template<typename T>以關鍵字template開頭,后面跟一個模板參數列表,列表里面用逗號將多個模板參數隔開定義的注意事項模板的編譯 當編譯器遇到一個模板定義時,并不生成代碼。只有當實例化處模板的一個特定版本時,編譯器才會生成代碼重點:通常,當我…

leetcode167. 兩數之和 II - 并沒有那么easy的easy題

給定一個已按照升序排列 的有序數組&#xff0c;找到兩個數使得它們相加之和等于目標數。 函數應該返回這兩個下標值 index1 和 index2&#xff0c;其中 index1 必須小于 index2。 說明: 返回的下標值&#xff08;index1 和 index2&#xff09;不是從零開始的。 你可以假設每…

C++:21---仿函數

什么是仿函數 所謂的仿函數(functor),是通過重載()運算符模擬函數形為的類。 因此,這里需要明確兩點: 1 仿函數不是函數,它是個類; 2 仿函數重載了()運算符,使得它的對你可以像函數那樣子調用(代碼的形式好像是在調用函數)。 假設有一個vector<string>,你的任務…

C++:20---類模板(template)

一、類模板與模板類 類模板:一個模板(是模板)模板類:調用類模板生成的類對象(是類實體),也稱為類模板的實例化類模板的定義: 與函數模板的定義是一樣的template <typename T> class Blob { public: Blob(); Blob(std::initializer_list<T> i); };模板類的使…

leetcode340. 至多包含 K 個不同字符的最長子串

給定一個字符串 s &#xff0c;找出 至多 包含 k 個不同字符的最長子串 T。 示例 1: 輸入: s "eceba", k 2 輸出: 3 解釋: 則 T 為 "ece"&#xff0c;所以長度為 3。 示例 2: 輸入: s "aa", k 1 輸出: 2 解釋: 則 T 為 "aa"&am…

Redis線上救命丸:01---誤操作AOF、RDB恢復數據

Redis的flushall/flushdb命令可以做數據清除&#xff0c;對于Redis的開發和運維人員有一定幫助&#xff0c;然而一旦誤操作&#xff0c;它的破壞性也是很明顯的。怎么才能快速恢復數據&#xff0c;讓損失達到最小呢&#xff1f;本文我們將結合之前學習的Redis相關知識進行分析&…

Log4j使用總結

一、介紹Log4j是Apache的一個開放源代碼項目&#xff0c;通過使用Log4j&#xff0c;我們可以控制日志信息輸送的目的地是控制臺、文件、GUI組件、甚至是套接口服務 器、NT的事件記錄器、UNIX Syslog守護進程等&#xff1b;我們也可以控制每一條日志的輸出格式&#xff1b;通過定…

C語言: GDB調試技術(一)

啟動GDB的方法有以下幾種: 1、gdb <program> program也就是你的執行文件,一般在當然目錄下。’ 例如我寫了一個簡單的helloword程序 #include <stdio.h> int main(){int a = 1;char* ch = "hello world";printf("%s\n",ch);return 0; }那么我…

C語言: ---windows下VS Debug調試

首先我先列出來常用的一些命令或者鍵盤控制: F5 開始調試,執行到斷點 Shift + F5 停止調試 F9 在光標所在行添加斷點 Shift + F9 QuickWatch Shift Ctrl F9 delete all 斷點 F10 單步執行 F11 進入調用的函數 Shift F11 跳出這次調用的函數 另外還可以用Disable all breakpoi…

leetcode350. 兩個數組的交集 II

給定兩個數組&#xff0c;編寫一個函數來計算它們的交集。 示例 1: 輸入: nums1 [1,2,2,1], nums2 [2,2] 輸出: [2,2] 示例 2: 輸入: nums1 [4,9,5], nums2 [9,4,9,8,4] 輸出: [4,9] 說明&#xff1a; 輸出結果中每個元素出現的次數&#xff0c;應與元素在兩個數組中出…

C語言: ---Linux下ulimit是什么鬼

其實ulimit的講解不屬于C或者C++ 語言范疇,他只是在我們日常開發或者線上linux運行環境不可缺少的工具。 比如我們要查看服務器崩潰的core文件,允許core文件產生,都需要ulimit -c命令調整。 比如我們設置的當前運行環境的棧空間過小,容易產生棧溢出,那么我們…

C語言: ---gdb查看內存和寄存器內容

gdb沒有CodeWarrior強大,但是也提供了查看寄存器的命令:(gdb) info register r1r1 0xbffffb40 3221224256(gdb) info registersr0 0x1000052c 268436780r1 0xbffffb40 3221224256r2 0x48026ea0 1208118944r3 …

leetcode52. N皇后 II 最強解法直接秒殺100%

n 皇后問題研究的是如何將 n 個皇后放置在 nn 的棋盤上&#xff0c;并且使皇后彼此之間不能相互攻擊。 上圖為 8 皇后問題的一種解法。 給定一個整數 n&#xff0c;返回 n 皇后不同的解決方案的數量。 示例: 輸入: 4 輸出: 2 解釋: 4 皇后問題存在如下兩個不同的解法。 [ […

C語言:---gdb多線程調試

1)恢復程序運行和單步調試 當程序被停住了,你可以用continue命令恢復程序的運行直到程序結束,或下一個斷點到來。也可以使用step或next命令單步跟蹤程序。 continue [ignore-count] c [ignore-count] fg [ignore-count] 恢復程序運行,直到程序結束,或是下一個斷點到來。ig…

leetcode145. 二叉樹的后序遍歷 意想不到的騷操作

給定一個二叉樹&#xff0c;返回它的 后序 遍歷。 示例: 輸入: [1,null,2,3] 1 \ 2 / 3 輸出: [3,2,1] 進階: 遞歸算法很簡單&#xff0c;你可以通過迭代算法完成嗎&#xff1f; 思路&#xff1a;前序遍歷左右交換&#xff0c;然后倒序輸出 原因&am…

C++:29 --- C++繼承關系下的內存布局(下)

1 單繼承 C++ 提供繼承的目的是在不同的類型之間提取共性。比如,科學家對物種進行分類,從而有種、屬、綱等說法。有了這種層次結構,我們才可能將某些具備特定性質的東西歸入到最合適的分類層次上,如“懷孩子的是哺乳動物”。由于這些屬性可以被子類繼承,所以,我們只要知道…

C++:30 ---C++類成員,成員函數的內存布局

前面兩篇文章我相信大家反復讀了之后對這節不陌生了: 首先來看代碼: class Demo { public://靜態成員變量static const int sx = 0;//靜態函數static void SF1() {} public://成員變量int x; public://成員函數void F1() {cout << "Im from Demo::F1()" <…

leetcode119. 楊輝三角 II 你能比我代碼更短嗎?

給定一個非負索引 k&#xff0c;其中 k ≤ 33&#xff0c;返回楊輝三角的第 k 行。 示例: 輸入: 3 輸出: [1,3,3,1]按照定義寫即可。 class Solution:def getRow(self, rowIndex: int) -> List[int]:l[1]for i in range(rowIndex):l[1][l[j]l[j1] for j in range(len(l)-1…

C++:28 --- C++內存布局(上)

了解你所使用的編程語言究竟是如何實現的,對于C++程序員可能特別有意義。 首先,我們順次考察C兼容的結構(struct)的布局,單繼承,多重繼承,以及虛繼承;接著,我們講成員變量和成員函數的訪問,當然,這里面包含虛函數的情況;再接下來,我們考察構造函數,析構函數,以…