添加链接
link之家
链接快照平台
  • 输入网页链接,自动生成快照
  • 标签化管理网页链接

官方文档-整数:https://docs.microsoft.com/zh-cn/dotnet/csharp/language-reference/builtin-types/integral-numeric-types
官方文档-浮点:https://docs.microsoft.com/zh-cn/dotnet/csharp/language-reference/builtin-types/floating-point-numeric-types#code-try-3

int a1=1;						//1
int a2=0xFF;					//255
int a3=0b_1111_1111;			//255
long l1=1L;						//1
ulong ul1=10_10UL;				//1010
double d1=10_10D;				//1010.00
double d1=10_10.10_10D;			//1010.1010
float f1=10_10F;				//1010.0
float f1=10_10.10_10F;			//1010.1010
decimal dm1=10_10M;				//1010.00
decimal dm2=10_10.10_10M;		//1010.1010
  • 前缀后缀都不区分大小写,且一般用大写,避免和其它字符搞混。
  • 前缀0x:16进制表示法,可以用_分割,可以用在各种类型上面。但需要注意类型问题,比如 int a=0xFF_FF_FF_FF会提示类型错误。
  • 前缀0b:2进制表示法,可以用_分割,可以用在各种类型上面。
  • 整数文本因为是16进制或2进制表示,这2种方式本身是没有正负号概念的,会解析为正值。比如文本 0xFF_FF_FF_FFuint 类型中表示数字 4294967295,在int类型中表示数字-1
  • 后缀U:表示uint或ulong。
  • 后缀L:表示long或ulong,一般用大写,用小写容易和数字1搞混。
  • 后缀UL:后缀U和后缀L的组合。
  • 后缀D:表示double
  • 后缀F:表示float
  • 后缀M:表示decimal

官方文档:https://docs.microsoft.com/zh-cn/dotnet/csharp/language-reference/builtin-types/enum

枚举支持在类型上面写文件,所以可以使用下面这种方式使用flags

    [Flags]
    public enum PermissionType : uint
        ALL = 0xFF_FF_FF_FF,
        Read = 0b_00_01,
        Write = 0b_00_10,
        Execute = 0b_01_00,
        ReadWrite = Read | Write,
        ReadExecute = Read | Execute

第一个ALL0x方式写16进制:我习惯性枚举写一个默认值,可能是None或是ALL。这里写ALL时需要保证他的所有2进制位为1,用0x直接表示比较方便,同时需要替换上面的类型为uint,默认的int原生不支持这种写法,需要替换为unchecked((int)0xFF_FF_FF_FF)就不太美观。

这种方式书写Flags的枚举,避免了以前口算1,2,4,8..的麻烦,就算你心算强大,当枚举项比较多的时候就不那么容易计算了(你一口气算算2^14=?)。现在这种写法直接让你书写2进制,需要增加时进位就行了,非常方便!

c#与java不同,数字类型并不是具体不变的,java若整数没有特定后缀,则默认为int型.浮点数默认为double型 无后缀数字 :类型与大小有关.(2147483647–Int32,9223372036854774807–Int64) 有后缀数字 :类型为后缀声明的类型.(1L–Int64,9223372036854774807UL–UInt64) Console.WriteLine(21...
在C语言中每定义一个变量,系统就会为这个变量分配出一个内存空间,而每一片内存都会有相应的地址。 内存地址的获取: C语言中用&(取地址符)来获取变量的地址。需要注意的是,在输出地址的时候,使用的格式控制符是p; #include <stdio.h> #include <stdlib.h> #include<math.h> #include<stdbool.h> #include<string.h> int ma argc 是 argument count的缩写,表示传入main函数的参数个数; argv 是 argument vector的缩写,表示传入main函数的参数序列或指针,并且第一个参数argv[0]一定是程序的名称(是固定的值),是包含了程序所在的完整路径,因此准确的说我们输入的main函数的参数个数应该是argc-1个;
原文地址:C语言中常量后缀,u或U,l或L,f或F问题 小白在学习过程中有时会在程序中看到0u或是0ul等常量有后缀的情况,如果没接触到C语言常量后缀的话可能就有点疑惑~ 其中的u为unsigned,l为long,f为float C语言中常量的默情况:整型默认为有符号int;浮点型默认为double;如果整形常量大小超出int,默认自然就为long int;如果需要无符号整型常量的话就可以在常量后面加u或是U,如0u或是0U,同理可以在常量后面加ulUL表示无符号长整型常量;而浮点型常量后缀只有f或F
1.二进制0b、八进制0o和十六进制0x转换为十进制的方法: 设目标数字为n,相关进制为x,将数字n从右向左分解,分别乘以x的零次方、一次方等并相加。 2.十进制转换为二进制0b、八进制0o和十六进制0x的方法: 设目标数字为n,相关进制为x,将n除以x至结果小于x,从下向上依次拼接各阶段余数。 3.各进制互转的方法: 2->8:重点是记住0o与0b的对应...
C#中,左移运算符用符号“<<”表示,左移n位就是将二进制数向左移动n位,右边用0填充。因此,0x04左移七位为0x400,0x0e为14,将它们相加得到0x40e。以下是代码示例: ```csharp int result = (0x04 << 7) + 0x0e; Console.WriteLine(result); // 输出:1038