C64中的Int64似乎太短了

Arl*_*ler 0 c# visual-studio-2010

我正在尝试将最大的int64值写入命令行.我尝试使用0x111111111111111116个,visual studio说这是int64.我原以为这将是int16.这里缺少什么?

Til*_*ilo 6

0x是十六进制而不是二进制文字的前缀.这意味着您的号码的二进制表示是0001000100010001000100010001000100010001000100010001000100010001

遗憾的是,C#中没有二进制文字,因此您必须自己进行计算(0x7FFFFFFFFFFFFFFF)或使用Convert该类,例如:

short s = Convert.ToInt16("1111111111111111", 2); // "2" for binary
Run Code Online (Sandbox Code Playgroud)

为了获得最大的Int64编号,您不需要执行自己的任何计算,因为在此字段中已经可以使用它:

Int64.MaxValue 
Run Code Online (Sandbox Code Playgroud)

  • 你忘了两个补码,签名和未签名.Int64.MaxValue实际上是"0x7FFFFFFFFFFFFFFF". (2认同)