值类型(Value Types)
类型名 | .NET 类型 | 字节数 | 说明 |
---|---|---|---|
bool | System.Boolean | 1 | 表示 true 或 false |
int | System.Int32 | 4 | 有符号 32 位整数 |
long | System.Int64 | 8 | 有符号 64 位整数 |
ulong | System.UInt64 | 8 | 无符号 64 位整数 |
char | System.Char | 2 | 单个 Unicode 字符,占用 2 字节 |
float | System.Single | 4 | 单精度浮点数(约 7 位十进制精度) |
double | System.Double | 8 | 双精度浮点数(约 15-16 位精度) |
引用类型(Reference Types)
类型名 | .NET 类型 | 引用字节数(变量本体) | 说明 |
---|---|---|---|
string | System.String | 4 字节(32 位)或 8 字节(64 位) | 内容长度变动,UTF-16 编码,每字符 2 字节 |
object | System.Object | 4 或 8 字节 | 变量是指向堆中对象的引用 |
自定义类 (class ) | - | 4 或 8 字节 | 实际占用由字段和内存对齐决定 |
通过sizeof方法可以获取变量类型所占的内存空间(单位:字节)
c#int intSize = sizeof(int);
Console.WriteLine("int 所占的字节数为:" + intSize);
输出结果为:4,即一个int类型的变量占4个字节的空间
为什么是2进制?
数字3245如何分别用二进制和十进制来表示?
计算各个数位上的n次方的结果然后依次相加,但是数字很大的话依次列举就比较麻烦
使用短除法不断的除以2,直到除尽为止,然后从下往上依次列举出余数即为这个数的二进制的表达,然后补充完整的八位,用最高位(即最左边的一位)表示符号,剩下的位表示数值,所以31在计算机中的二进制表示为00011111
反码、原码和补码是计算机中表示带符号整数的三种不同方法。它们主要用于表示正数和负数;
原码
原码是最简单的一种表示带符号数的方法,它用最高位(即最左边的一位)表示符号,剩下的位表示数值的绝对值。反码
反码是将原码的数值部分取反(即0变1,1变0),符号位不变。补码
补码是将反码加1。补码是现代计算机中最常用的表示带符号整数的方式,它具有一些优点,如加法和减法的运算更加简单。11111011
本文作者:xuxuxuJS
本文链接:
版权声明:本博客所有文章除特别声明外,均采用 BY-NC-SA 许可协议。转载请注明出处!