代码中不同的数值表示法官方文档都有,但这东西不常用,要用时又要专门翻下文档,所以整个博客记录整理一下

数字表示

官方文档-整数: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;           //255long l1=1L;                       //1
ulong ul1=10_10UL;             //1010double d1=10_10D;                //1010.00
double d1=10_10.10_10D;            //1010.1010float f1=10_10F;                //1010.0
float f1=10_10.10_10F;         //1010.1010decimal 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#代码中用UL 0B 0X等前后缀表示数字相关推荐

  1. python文件用pyinstaller库进行打包时,代码中用到的图片和我们自定义的python package包的处理办法

    在使用python打包.py文件时,如果我们在代码中使用到了图片,那么在打包成功后,运行.exe文件时会提示 Failed to execute script xxx的错误,当我们自定义了python ...

  2. 平时代码中用不到设计模式?Are you kidding me?

    引子 平时我是个反应非常慢的人.有多慢呢?大概是两年前有次团队内部开会时,我听到同学说平时代码中用不到设计模式,我当时没有回答.两年后我终于反应过来了:"Are you kidding me ...

  3. LeetCode 第 58 场力扣夜喵双周赛(动态规划、马拉车算法,前后缀处理)/ 第 253 场力扣周赛(贪心,LIS)

    第 58 场力扣夜喵双周赛 两道600多 5193. 删除字符使字符串变好 题目描述 一个字符串如果没有 三个连续 相同字符,那么它就是一个 好字符串 . 给你一个字符串 s ,请你从 s 删除 最少 ...

  4. KMP----next数组 最长相同前后缀 递归求法解释

    理解递归(推)求解next数组的代码是个难点,对于刚入门来说 next数组求解的时候是 已知next[0....j],next[j]=k.求解next[j+1] 首先next[j]=k的含义是说前j- ...

  5. HDU 4763 Theme Section(KMP+枚举公共前后缀)

    题目链接: http://acm.hdu.edu.cn/showproblem.php?pid=4763 题目大意: 给你一个字符串s,存在一个 子串E同时出现在前缀.中间.后缀,即EAEBE这种模式 ...

  6. Java黑皮书课后题第10章:10.21(被5或6整除)找出能被5或6整除的大于Long.MAX_VALUE的前10个数字

    Java黑皮书课后题第10章:10.21(被5或6整除)找出能被5或6整除的大于Long.MAX_VALUE的前10个数字 题目 代码 结果 题目 都在上面 代码 import java.math.B ...

  7. Java黑皮书课后题第10章:*10.16(被2或3整除)找出所有被2或3整除的有50个十进制位数的前10个数字

    10.16(被2或3整除)找出所有被2或3整除的有50个十进制位数的前10个数字 法一 破题 代码 运行结果 法二 破题 代码 运行结果 法一 破题 本题通过基本数据类型无解(求不出来,不是没有解) ...

  8. 中证登姚前演讲:数字资产是数字金融的核心(全文)

    9月17日,由万向区块链实验室主办的第五届区块链全球峰会在上海举行.中国证券登记结算公司党委副书记.总经理姚前发表<数字资产和数字金融>主题演讲.为便于阅读,陀螺财经整理了以下观点精编版和 ...

  9. 238 除自身以外数组的乘积(前后缀分解)

    1. 问题描述: 给你一个长度为 n 的整数数组 nums,其中 n > 1,返回输出数组 output ,其中 output[i] 等于 nums 中除 nums[i] 之外其余各元素的乘积. ...

最新文章

  1. python技术晨讲_python系列教程14
  2. 用递归的方法求s = k! + n! / m!的值
  3. 使用webpack-dev-server设置反向代理解决前端跨域问题
  4. 蓝桥杯-最小乘积(java)
  5. oracle11g memory_target,oracle11g MEMORY_MAX_TARGET设置成0 问题处理
  6. rtmp官方协议详解
  7. html strong标签 无法渲染,javascript – 当我动态设置内容时,TinyMCE无法使用chrome
  8. GNOME 2.18.2
  9. 每天Leetcode 刷题 初级算法篇-设计问题-最小栈
  10. 海思3519A上运行yolov3(二)——Linux和Windows开发环境和运行环境搭建
  11. 我的2013——不平凡的第一次
  12. iOS获取当前app的名称和版本号
  13. java基础知识点总结(一)
  14. 关于FTP服务器出现227 Entering Passive Mode错误的解决思路
  15. oracle lsnrctl status unknown,理解 oracle 的 lsnrctl status
  16. 国内外大数据创业面面观
  17. 感恩节---Thanksgiving Day
  18. 数据库系统概论--第六章 关系数据理论
  19. dpdk mempool的逻辑
  20. python flask项目结构_Flask项目结构

热门文章

  1. 算法设计与分析(python版)-作业三
  2. 目标检测与YOLO算法(用Python实现目标检测)
  3. 计算机主机前后,电脑cpu后面的字母是什么意思
  4. 分享几个实用,装逼的cmd命令。
  5. Python第六周作业
  6. 多项目同时进行如何做好进度管理?
  7. 导学目录-学如逆水行舟
  8. oracle系统pga,oracle教程之PGA管理
  9. css 一行超出显示省略号 多行超出显示省略号
  10. linux进下一级目录下,linux进入下一级目录的命令