3月3日 数字(1)整数

Profile Picture
- Published on Mar 3, 2020🌏 Public

数字

C#中,我把他们大致归类为三种数字类型: 1. 整数 2. 浮点型小数 3. 十进制小数

1.整数

1.1. Int32 / int

Int32是有符号的32位整数。使用32位长度用来记录数值大小。 因为是有符号整数,所以其中1位要用来存放是正数还是负数。

Int32能表示的数值范围为:-2147483648 ~ 2147483647

我们如果执行

 Int32 a =Convert.ToInt32("2147483647")*2;

最终输出的结果为-2

 Int32 a =Convert.ToInt32("2147483647")+1;

最终输出的结果为-2147483648

这种错误出现在运算后,超出了Int32能表示的数值范围的时候。这种错误叫做溢出。

1.2. Int64 / long

Int64是有符号的64位整数,跟Int32以相同的方式存储数值,但是存储数值用的数据长度为Int32的一倍。

表示范围: -9,223,372,036,854,775,808 ~ 9,223,372,036,854,775,807

类型描述范围默认值
SByte/sbyte有符号的8位整数-128~1270
Int16/short有符号16位整数-32,768 ~ 32,7670
Int32/int有符号32位整数-2147483648 ~ 21474836470
Int64/long有符号64位整数-9,223,372,036,854,775,808 ~ 9,223,372,036,854,775,8070L
Byte/byte无符号8位整数0~2550
UInt16/ushort无符号16位整数0 ~ 65,5350
UInt32/uint无符号16位整数0 ~ 4,294,967,2950
UInt64/ulong无符号16位整数0 ~ 18,446,744,073,709,551,6150
var str = "100";
Int32 a = Convert.ToInt32(str);
Int64 b = Convert.ToInt64(str);
SByte c = Convert.ToSByte(str);
Int16 d = Convert.ToInt16(str);
Byte e = Convert.ToByte(str);
UInt16 f = Convert.ToUInt16(str);
UInt32 g = Convert.ToUInt32(str);
UInt64 h = Convert.ToUInt64(str);

//当参与运算的数值都是整数是,运算结果会直接舍弃小数点后的数值(不是四舍五入)
var i =-11 / 3;

我们想要从字符串转换的到一个整数,可以使用Convert类下面提供的各种转换方法。

我们的数学运算中,如果出现了参与运算的数值都是整数,那么,最终得到的结果,也会是一个整数,小数部分会被直接去掉(不是四舍五入,是直接去除)

练习1

  1. 要求用户输入两个整数,分别计算他们的加法结果、减法结果和乘法结果,以算式的形式,输出到控制台。
1+2=3
1-2=-1
1×2=2
  1. 要求用户输入一个大于1的整数,记为n,计算1+2+3+...+n的结果,输出到控制台