根据官方文档所述, System.Decimal
的128位填充如下:
返回值是一个由四个32位有符号整数组成的数组。
返回数组的第一个、第二个和第三个元素包含96位整数的低32位、中间32位和高32位。
返回数组的第四个元素包含比例因子和符号。它由以下部分组成:
位0到15(较低的字),未使用且必须为零。
位16到23必须包含介于0和28之间的指数,该指数表示将整数除以10的幂。
位24到30未使用且必须为零。
位31包含符号:0表示正数,1表示负数。
考虑到这一点,人们可以看到一些位是“浪费”的或未使用的。
为什么不采用例如120位整数,7位指数和1位符号的方式呢?
可能对于十进制而言采用现在的方式有很好的理由。本问题想要知道作出这个决定的理由。