关于C# ulong类型问题 我在一本书上看到这么写的 但是没明白 希望大神给予小弟解释一下

2025-02-25 12:23:07
推荐回答(1个)
回答1:

首先解释有符号数和无符号数,简单的说有符号数可以是负数,0,正数,而无符号数则只能为0和正数!计算机是用二进制存储一个数的,比如你的例子64位无符号整型,就是用了64位的二进制来表示这个数(8个字节)。
在这64位(0-63)中,如果是有符号数,那最高位(63)就作为符号位了,那么实际表示数大小的只有63个位(总共64位)可以,最高位如果是0,则数值是0,正数,最高位如果是1,则表示一个负数。能表示数的范围就是-2^63 ~ 2^63-1
如果是无符号数,那么最高位不作为符号位,也能用于计数,那么总共就有64个位用于计数了!
能表示的范围是0-2^64-1

后面这个加上后缀u,l,ul的意思是:
如果使用u,根据数的大小判断是uint或ulong
如果使用l,根据数的大小判断是long还是ulong
如果是ul,那就说明这个数就是ulong