隐式转换的例子:
using System;
namespace Conversion
{
class Program
{
static void Main(string[] args)
{
int numInt = 100;
Type n = numInt.GetType();
double numDouble = numInt;
Type n1 = numDouble.GetType();
Console.WriteLine("numInt value: " + numInt);
Console.WriteLine("numInt Type: " + n);
Console.WriteLine("numDouble value: " + numDouble);
Console.WriteLine("numDouble Type: " + n1);
Console.ReadLine();
}
}
}
结果:
将int类型变量赋给一个双精度类型变量。在这种情况下,C#编译器自动将int类型值转换为Double。
显式转换的例子:
using System;
namespace Conversion
{
class Program
{
static void Main(string[] args)
{
double numDouble = 1.01;
int numInt = (int)numDouble;
Console.WriteLine("Original double Value: " + numDouble);
Console.WriteLine("Converted int Value: " + numInt);
Console.ReadLine();
}
}
}
结果:
原始值是1.23,而转换值是1。在这里,一些数据在类型转换过程中丢失。这是因为我们将较大的数据类型double显式转换为较小的int类型。
使用Convert类进行类型转换
方法 | 描述 |
ToBoolean() | 将类型转换为布尔值 |
ToChar() | 将类型转换为字符类型 |
ToDouble() | 将类型转换为双精度类型 |
ToInt16() | 将类型转换为16位整型 |
ToString() | 将类型转换为字符串 |
int类型转换为string和double:
using System;
using System;
namespace Conversion
{
class Program
{
static void Main(string[] args)
{
int num = 100;
Console.WriteLine("int value: " + num);
string str = Convert.ToString(num);
Console.WriteLine("string value: " + str);
Double doubleNum = Convert.ToDouble(num);
Console.WriteLine("Double value: " + doubleNum);
Console.ReadLine();
}
}
}
结果:
数据类型占用字节内存:
数据类型 | 所占字节 | 范围 |
Byte | 1 byte(s) | 0 ~ 255 |
SByte | 1 byte(s) | -128 ~ 127 |
Int16 | 2 byte(s) | -32,768 ~ 32,767 |
UInt16 | 2 byte(s) | 0 ~ 65,535 |
Int32 | 4 byte(s) | -2,147,483,648 ~ 2,147,483,647 |
UInt32 | 4 byte(s) | 0 ~ 4,294,967,295 |
Int64 | 8 byte(s) | -9,223,372,036,854,775,808 ~ 9,223,372,036,854,775,807 |
UInt64 | 8 byte(s) | 0 ~ 18,446,744,073,709,551,615 |
Single | 4 byte(s) | -3.4028235E+38 ~ 3.4028235E+38 |
Double | 8 byte(s) | -1.7976931348623157E+308 ~ 1.7976931348623157E+308 |
Decimal | 16 byte(s) | -79,228,162,514,264,337,593,543,950,335 ~ 79,228,162,514,264,337,593,543,950,335 |
Boolean | 1 byte(s) | |
Char | 2 byte(s) | |
IntPtr | 8 byte(s) |
单位换算:
1字节(Byte)=8位(bit)
1KB( Kilobyte,千字节)=1024B
1MB( Megabyte,兆字节)=1024KB
1GB( Gigabyte,吉字节,千兆)=1024MB
1TB( Trillionbyte,万亿字节,太字节)=1024GB
1PB( Petabyte,千万亿字节,拍字节)=1024TB
1EB( Exabyte,百亿亿字节,艾字节)=1024PB