3月3日 数字(1)整数
数字
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~127 | 0 |
Int16/short | 有符号16位整数 | -32,768 ~ 32,767 | 0 |
Int32/int | 有符号32位整数 | -2147483648 ~ 2147483647 | 0 |
Int64/long | 有符号64位整数 | -9,223,372,036,854,775,808 ~ 9,223,372,036,854,775,807 | 0L |
Byte/byte | 无符号8位整数 | 0~255 | 0 |
UInt16/ushort | 无符号16位整数 | 0 ~ 65,535 | 0 |
UInt32/uint | 无符号16位整数 | 0 ~ 4,294,967,295 | 0 |
UInt64/ulong | 无符号16位整数 | 0 ~ 18,446,744,073,709,551,615 | 0 |
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+2=3
1-2=-1
1×2=2
- 要求用户输入一个大于1的整数,记为n,计算1+2+3+...+n的结果,输出到控制台