c# 數據類型占用的字節數


原文鏈接

 

進制轉換網址

 http://hex.babihu.com/id/16100xffff.html

 

 

bool -> System.Boolean (布爾型,其值為 true 或者 false)

byte -> System.Byte (字節型,占 1 字節,表示 8 位正整數,范圍 0 ~ 255)

sbyte -> System.SByte (帶符號字節型,占 1 字節,表示 8 位整數,范圍 -128 ~ 127)

char -> System.Char (字符型,占有兩個字節,表示 1 個 Unicode 字符)

short -> System.Int16 (短整型,占 2 字節,表示 16 位整數,范圍 -32,768 ~ 32,767)

ushort -> System.UInt16 (無符號短整型,占 2 字節,表示 16 位正整數,范圍 0 ~ 65,535)

uint -> System.UInt32 (無符號整型,占 4 字節,表示 32 位正整數,范圍 0 ~ 4,294,967,295)

int -> System.Int32 (整型,占 4 字節,表示 32 位整數,范圍 -2,147,483,648 到 2,147,483,647)

float -> System.Single (單精度浮點型,占 4 個字節)

ulong -> System.UInt64 (無符號長整型,占 8 字節,表示 64 位正整數,范圍 0 ~ 大約 10 的 20 次方)

long -> System.Int64 (長整型,占 8 字節,表示 64 位整數,范圍大約 -(10 的 19) 次方 到 10 的 19 次方)

double -> System.Double (雙精度浮點型,占8 個字節) 

【PS】

      那么,引用類型占幾個字節呢?對象類型可以理解為指針變量,指針變量保存的是地址,32位機尋址就是32位,所以是4字節,不過這是在線程棧中占用4個字節,用來指向托管堆中實際內容的首地址,值是存在堆里的,具體在堆里占幾個字節就不一定了(不過賦值為NULL的時候,不在堆里分配空間,倒是可以認為它就只占那4個字節……)我試過一個空類(無屬性,無字段,無方法,object為基類),是占12個字節(里面包有頭部的基類指針還有尾部的線程標識神馬的各4個字節,其余是屬性占用的空間,這個不確定。。)。

 

【相關閱讀】

引用類型變量占幾個字節 http://bbs.tarena.com.cn/archiver/tid-198197.html

指針變量占幾個字節 http://www.cnblogs.com/liwen/archive/2011/07/20/2111780.html

棧和托管堆/值類型和引用類型/裝箱和拆箱 http://www.cnblogs.com/xy8.cn/articles/1227228.html


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM