TOC

This article is currently in the process of being translated into Chinese (~98% done).

数据类型:

Integers

计算机和数字息息相关,因此在编程时,你经常会发现自己以多种形式处理数字。在C#中,最常用的类型之一就是整数。"整数"一词源自拉丁语,意为"完整",这是有道理的,因为整数是没有小数部分的数字——是一个完整的数字。

Int32——默认的整数类型

正如我们稍后将讨论的那样,C#提供了许多不同的整数类型,但你大部分时间可能会使用的是Int32——一个32位的整数。可以这样声明它:

Int32 number;

不过,由于这实际上是C#中最常用的整数类型,它有一个快捷方式——你可以直接写 "int",C#会自动知道你在谈论一个Int32。当然,你也可以在声明它的同时为它赋值:

int number = 42;

注意大小写的不同——Int32是一个类,所以它以大写的 I 开头,而int是一个关键字,所以它以小写的 i 开头。

Int32 是一种所谓的有符号整数,可以保存范围为 -2,147,483,648 到 2,147,483,647 的数字。你可以通过访问 Int32.MinValue 和 Int32.MaxValue 常量来验证这一点。如果你需要更大的数字,或者你已经知道你将处理的数字不会超过整数的限制,那么你可以选择另一种类型。

整数类型

正如前面提到的,C#中有很多整数类型。事实上,有太多类型以至于无法在本文中一一列举,但以下是你可能会时常遇到的最常见类型:

  • byte——无符号整数,可以保存 0 到 255 之间的数字。
  • short——16位有符号整数,可以保存 -32,768 到 32,767 之间的值。也可以用其正式名称 Int16来称呼。
  • long——64位整数,可以保存 -9,223,372,036,854,775,808 到 9,223,372,036,854,775,807 之间的值。也可以用其正式名称Int64来称呼。

如果你需要保存比 long类型允许的更大的数字,你可以使用 ulong——它是一个无符号整数,可以保存最大值为 18,446,744,073,709,551,615 的值。另一方面,由于它是一个无符号整数,它不允许负值。同样,你可以找到其他整数类型的无符号版本,其工作方式相同,如 uintushort

整数运算

当处理整数和数字时,你可能希望进行一些计算。在大多数编程语言中,包括C#,这非常简单,你可以直接使用所有常见的数学运算符。例如,你可以进行如下计算:

int a = 42;  
int b = 8;  

Console.WriteLine(a + b);

控制台将打印出数字 50。注意你可以毫不费力地处理这个计算——只需指定变量和数学加号运算符,就可以进行计算。

如果你想使用其他数学运算符,当然也可以使用不在变量中定义的数字:

int a = 42;  
int b = 8;  

Console.WriteLine(200 - ((a + b) * 2));

注意额外的一对括号 - 就像正常的数学运算一样,你必须处理运算顺序

整数除法

现在我们已经进行了加法、减法和乘法,让我们稍微谈谈除法。考虑以下例子:

int a = 10;
int b = 3;

Console.WriteLine(a / b);

你可以在脑海中计算出结果应该是 3.33333333333。但如果你运行这个例子,你会看到一些奇怪的东西 - 结果实际上是 3。原因是,如果你在两个整数之间进行除法运算,C#也会返回一个整数,而且由于整数不能包含任何小数部分,结果会被简单地四舍五入(在这种情况下是向下取整到 3)。因此,如果你想要带有小数的结果,你应该将其中一个变量声明为浮点变量(稍后会介绍更多),或者在运算过程中进行类型转换:

int a = 10;
int b = 3;

Console.WriteLine((float)a / b);

类型转换

让我们更多地讨论如何将整数转换为其他类型,以及如何从其他类型转换为整数。首先,C#允许在各种整数类型之间进行隐式和显式转换。隐式转换的示例可能如下所示:

int a = 10;
long b = a;

换句话说,如果你有一个整数,你可以将它视为一个 long 类型。这是因为C#知道整数的值可以适应 long 类型。另一方面,反过来可能不成立——因此,你将不得不使用显式转换:

long a = 10;
int b = (int)a;

当然,这是为了让你意识到你正在做一些可能出错的事情 - 如果你有一个超过常规整数容量的长整型值,你就会遇到问题!

总结

在任何编程任务中,你都会经常处理数字,如整数和浮点数。通过对整数及其处理方式有了新的了解,现在是时候转向下一篇文章,学习如何处理浮点数值了。


This article has been fully translated into the following languages: Is your preferred language not on the list? Click here to help us translate this article into your language!