Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/302.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# Int64在C中似乎太短了_C#_Visual Studio 2010 - Fatal编程技术网

C# Int64在C中似乎太短了

C# Int64在C中似乎太短了,c#,visual-studio-2010,C#,Visual Studio 2010,我正在尝试将最大的int64值写入命令行。我尝试使用0x1111111,它是16个1,VisualStudio说是int64。我想那应该是int16。这里缺少什么?0x是十六进制而不是二进制文本的前缀。这意味着您的数字的二进制表示形式为0001000100010000000000000000000000000000000000000000000000000000000000000000000000001 不幸的是,C中没有二进制文字,因此您必须自己进行计算0x7FFFFFFFFFFFFFFFFF

我正在尝试将最大的int64值写入命令行。我尝试使用0x1111111,它是16个1,VisualStudio说是int64。我想那应该是int16。这里缺少什么?

0x是十六进制而不是二进制文本的前缀。这意味着您的数字的二进制表示形式为0001000100010000000000000000000000000000000000000000000000000000000000000000000000001

不幸的是,C中没有二进制文字,因此您必须自己进行计算0x7FFFFFFFFFFFFFFFFFFF或使用Convert类,例如:

short s = Convert.ToInt16("1111111111111111", 2); // "2" for binary
为了获得最大的Int64数字,您不需要执行任何自己的计算,因为该字段中已经提供了该数字:

Int64.MaxValue 

最大的Int64值为。要以十六进制打印,请尝试:

Console.WriteLine(Int64.MaxValue.ToString("X"));
文字0x1111是一个十六进制数。每个十六进制数字都可以用四位来表示,因此16位十六进制数字需要4*16=64位。您可能打算写入二进制数1111111111。可以使用以下代码将二进制文字字符串转换为整数:

Convert.ToInt16("1111111111111111", 2)
这将返回所需的数字-1


要获取最大的Int64,可以使用Int64.MaxValue 0x7FFFFFFFFFFFFFFFFFFF,或者如果确实需要无符号值,可以使用UInt64.MaxValue 0xFFFFFFFFFFFFFF。

该格式是十六进制数。每个数字是四位,而不是一位。您缺少0xFF…FF,并且您也可以忽略有符号/无符号或您也可以尝试Int64.MaxValue您忘记了两位的补码和有符号与无符号。Int64.MaxValue实际上是0x7FFFFFFFFFFFFFFF。