• C# int uint long ulong byte sbyte float double decimal 范围,及类型!


    static void Main(string[] args)
            {
                Console.WriteLine("   byte  {0,7:g}{1,32:g}{2,32:g}",typeof(byte).Name, byte.MinValue, byte.MaxValue);
                Console.WriteLine("  sbyte  {0,7:g}{1,32:g}{2,32:g}",typeof(sbyte).Name, sbyte.MinValue, sbyte.MaxValue);
                Console.WriteLine("  short  {0,7:g}{1,32:g}{2,32:g}", typeof(short).Name, short.MinValue, short.MaxValue);
                Console.WriteLine(" ushort  {0,7:g}{1,32:g}{2,32:g}", typeof(ushort).Name, ushort.MinValue, ushort.MaxValue);
                Console.WriteLine("    int  {0,7:g}{1,32:g}{2,32:g}",typeof(int).Name, int.MinValue, int.MaxValue);
                Console.WriteLine("   uint  {0,7:g}{1,32:g}{2,32:g}",typeof(uint).Name, uint.MinValue, uint.MaxValue);
                Console.WriteLine("   long  {0,7:g}{1,32:g}{2,32:g}",typeof(long).Name, long.MinValue, long.MaxValue);
                Console.WriteLine("  ulong  {0,7:g}{1,32:g}{2,32:g}",typeof(ulong).Name, ulong.MinValue, ulong.MaxValue);
                Console.WriteLine("  float  {0,7:g}{1,32:g}{2,32:g}", typeof(float).Name, float.MinValue, float.MaxValue);
                Console.WriteLine(" double  {0,7:g}{1,32:g}{2,32:g}", typeof(double).Name, double.MinValue, double.MaxValue);
                Console.WriteLine("decimal  {0,7:g}{1,32:g}{2,32:g}",typeof(decimal).Name, decimal.MinValue, decimal.MaxValue);
    }

    输出:

       byte     Byte                               0                             255
      sbyte    SByte                            -128                             127
      short    Int16                          -32768                           32767
     ushort   UInt16                               0                           65535
        int    Int32                     -2147483648                      2147483647
       uint   UInt32                               0                      4294967295
       long    Int64            -9223372036854775808             9223372036854775807
      ulong   UInt64                               0            18446744073709551615
      float   Single                   -3.402823e+38                    3.402823e+38
     double   Double          -1.79769313486232e+308           1.79769313486232e+308
    decimal  Decimal  -79228162514264337593543950335   79228162514264337593543950335

     整数型类型

    可以看出,关键字与其类型命名显得有点乱!

    有符号[关键字(对应.net类型)] 无符号[关键字(对应.net类型)-后缀] 长度
    sbyte(SByte) byte(Byte)  8位 整数     1字节
    short(Int16) ushort(UInt16) 16位 整数     2字节
    int(Int32) uint(UInt32)-U|u 32位 整数     4字节
    long (Int64)-L|l ulong(Int64)-UL|ul 64位 整数    8字节  

    后缀:

    uint long ulong 可以被推断出来,可以从int 隐式转换

    D 所有小数点,都可以推断成Double

    F、M比较有用指定float decimal  如:float p= 3.14;   编译器不通过默认的3.14位double类型

    浮点型

    C# 类型/关键字大致范围精度.NET 类型后缀
    float(单精度32位数字) 4字节 ±1.5 x 10−45 至 ±3.4 x 1038 大约 6-9 位数字 System.Single f F
    double(双精度64位数字)8字节 ±5.0 × 10−324 到 ±1.7 × 10308 大约 15-17 位数字 System.Double d D
    decimal ±1.0 x 10-28 至 ±7.9228 x 1028 28-29 位 System.Decimal m M

        关键字即是.net类型的别名以下是相同的!

    double a = 12.3;
    System.Double b = 12.3;

                    

                         

                     

  • 相关阅读:
    【Sparse】关于__attribute__((bitwise)),__le32,__be32等的理解【转】
    设备树中ranges属性分析(1)【转】
    Linux内核API sprint_symbol【转】
    Linux内核--网络协议栈深入分析(二)--sk_buff的操作函数【转】
    浅析SkipList跳跃表原理及代码实现【转】
    关于kernel module签名【转】
    apt-get 更新指定软件_Linux系统 aptget 命令的使用:安装、更新、卸载软件包【转】
    如何挂载ubi文件系统【转】
    伙伴系统之伙伴系统概述--Linux内存管理(十五)【转】
    精确时间协议PTP研究【转】
  • 原文地址:https://www.cnblogs.com/mingjing/p/11335580.html
Copyright © 2020-2023  润新知