一、整型類型
C#中定義了8中整數類型:字節型(byte)、無符號字節型(ubyte)、短整型(short)、無符號短整型(ushort)、整型(int)、無 符號整型(uint)、長整型(long)、無符號長整型(ulong)。划分依據是該類型的變量在內存中所占的位數。
C#中每個整數類型都對應於.NET類庫中定義的一個結構,這些結構在程序集System中定義。上述結構均提供兩個基本屬性:MinValue和MaxValue,分別表示類型的最小值和最大值。
數據類型 | 說明 | 取值范圍 | 對應於System程序集中的結構 |
sbyte | 有符號8位整數 | -128~127 | SByte |
byte | 無符號8位整數 | 0~255 | Byte |
short | 有符號16位整數 | -32768~32767 | Int16 |
ushort | 無符號16位整數 | 0~65535 | UInt16 |
int | 有符號32位整數 | -2147483648-2147483647 | Int32 |
uint | 無符號32位整數 | 0~4294967295 | UInt32 |
long | 有符號64位整數 | -9223372036854775808~9223372036854775807 | Int64 |
ulong | 無符號64位整數 | 0~18446744073709551615 | UInt64 |
整數取值范圍代碼:
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
namespace IntegerRange
{
class Program
{
static void Main(string[] args)
{
Console.WriteLine("整數類型的取值范圍:");
// sbyte
Console.Write("SByte:\t");
Console.Write(SByte.MinValue);
Console.Write("~");
Console.WriteLine(SByte.MaxValue);
// byte
Console.Write("Byte:\t");
Console.Write(Byte.MinValue);
Console.Write("~");
Console.WriteLine(Byte.MaxValue);
// short
Console.Write("Int16:\t");
Console.Write(Int16.MinValue);
Console.Write("~");
Console.WriteLine(Int16.MaxValue);
// ushort
Console.Write("UInt16:\t");
Console.Write(UInt16.MinValue);
Console.Write("~");
Console.WriteLine(UInt16.MaxValue);
// int
Console.Write("Int32:\t");
Console.Write(Int32.MinValue);
Console.Write("~");
Console.WriteLine(Int32.MaxValue);
// uint
Console.Write("UInt32:\t");
Console.Write(UInt32.MinValue);
Console.Write("~");
Console.WriteLine(UInt32.MaxValue);
// long
Console.Write("Int64:\t");
Console.Write(Int64.MinValue);
Console.Write("~");
Console.WriteLine(Int64.MaxValue);
// ulong
Console.Write("UInt64:\t");
Console.Write(UInt64.MinValue);
Console.Write("~");
Console.WriteLine(UInt64.MaxValue);
Console.WriteLine();
}
}
}
執行結果:
整數類型的取值范圍:
SByte: -128~127
Byte: 0~255
Int16: -32768~32767
UInt16: 0~65535
Int32: -2147483648~2147483647
UInt32: 0~4294967295
Int64: -9223372036854775808~9223372036854775807
UInt64: 0~18446744073709551615
請按任意鍵繼續. . .
如果類型取值超出了取值范圍,程序在運行時就會發生溢出。
Byte溢出代碼:
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
namespace IntegrateOverflow
{
class Program
{
static void Main(string[] args)
{
byte b = 100;
b = (byte)(b + 200); // 溢出
Console.WriteLine(b);
}
}
}
執行結果:
44
請按任意鍵繼續. . .
二、源代碼
感謝分享, 這個類型所占的數字范圍 在其他編程語言里面似乎也是相似或者通用的