【c/c++筆記】高位元組和低位元組 動態語言和靜態語言等

來源:互聯網
上載者:User
一)位元組序,顧名思義位元組的順序,再多說兩句就是大於一個位元組類型的資料在記憶體中的存放順序(一個位元組的資料當然就無需談順序的問題了)。其實大部分人在實際的開發中都很少會直接和位元組序打交道。唯有在跨平台以及網路程式中位元組序才是一個應該被考慮的問題。在所有的介紹位元組序的文章中都會提到位元組序分為兩類:Big-Endian和Little-Endian,引用標準的Big-Endian和Little-Endian的定義如下:a) Little-Endian就是低位位元組排放在記憶體的低地址端,高位位元組排放在記憶體的高地址端。b) Big-Endian就是高位位元組排放在記憶體的低地址端,低位位元組排放在記憶體的高地址端。c) 網路位元組序:TCP/IP各層協議將位元組序定義為Big-Endian,因此TCP/IP協議中使用的位元組序通常稱之為網路位元組序。直接上代碼:int a = 0x05060708;
char *ch = (char *)&a;
printf("%d,%d,%d,%d", *(ch + 3), *(ch
+ 2), *(ch + 1), *ch);在vs上編譯輸出是:5,6,7,8看到高位位元組排在高地址端,表明是低位元組序。二)關於char強制轉化為 unsigned char。如果char是負數,在c++中是合法的,其結果是該負數對該類型的取值個數求模後的值。如果把-1賦值給8位的unsigned char,結果是255.三) 動態語言和靜態語言:

強型別語言(靜態類型語言)是指需要進行變數/物件類型聲明的語言,一般情況下需要編譯執行。例如C/C++/Java/C#

弱類型語言(動態類型語言)是指不需要進行變數/物件類型聲明的語言,一般情況下不需要編譯(但也有編譯型的)。例如PHP/ASP/Ruby/Python/Perl/ABAP/SQL/JavaScript/Unix Shell等等。

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.