Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/amazon-s3/2.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#:数十亿次计算的最快数组_C#_Performance_Types - Fatal编程技术网

C#:数十亿次计算的最快数组

C#:数十亿次计算的最快数组,c#,performance,types,C#,Performance,Types,它是char、byte、Int16、Int32、Int64(可能是最后三个无符号的,因为我不会有负数?) 我需要它做乘法和加法。一个类型所包含的数字越小,一个大数字所划分的部分就越多 An example: 1234567898765321 In char: {1, 2, 3, 4, 5, 6, 7, 8, 9, 8, 7, 6, 5, 4, 3, 2, 1} In Int32: {123456789, 87654321} 那么,哪一种计算速度更快?如果您的意思是: 我能通过将大数字拆分为小数

它是char、byte、Int16、Int32、Int64(可能是最后三个无符号的,因为我不会有负数?)

我需要它做乘法和加法。一个类型所包含的数字越小,一个大数字所划分的部分就越多

An example: 1234567898765321
In char: {1, 2, 3, 4, 5, 6, 7, 8, 9, 8, 7, 6, 5, 4, 3, 2, 1}
In Int32: {123456789, 87654321}
那么,哪一种计算速度更快?如果您的意思是:

我能通过将大数字拆分为小数字来获得速度优势吗 和做我自己的携带逻辑的加法和加法 乘法运算


答案是否定的。使用足够大的类型来保存整个值,编译器/JIT将生成在单个指令中执行每个算术运算的机器代码,这将尽可能快。

这正是我的意思。但是如果我有一个10万位数的数字呢?我必须要做一些拆分。@Randolph:然后使用
BigInteger
。不幸的是,我不能。“没有它,我必须自己写算术。”伦道夫——作为学术练习?然后你应该自己做作业,找出哪一个最快这不是一个学术性的理论,而是一个可以用于我在学术练习中所做的一切的理论:)我做了一些基准测试。从中可以看出,Int32比Int64快,两者都比char快。但可以肯定的是,我必须编写不同的函数,每个函数都有各自的想法。所以在此之前,我只想问一下,数组引用变量仍然是一个变量。这没关系。但是如果使用char类型(可能更快)或使用int32类型(可以容纳更大的数字,可能更快)进行更少的计算,我可以进行更多的计算,但你没有抓住要点。阵列本身对分支预测没有任何影响。。。请查看更多信息。但我必须这样做。有没有其他“正常”的方法来增加一百万位数?我不这么认为。然后我必须使用数组。数字,以获得最佳性能。我可以把这些大数字分成更小的(一个元素-一个数字)或更大的(一个元素-4个数字)。有区别吗?