C# 读取字节数组

C# 读取字节数组,c#,C#,我正在读书。在写入文件时,microsoft将bufferSize设置为4096字节,但在读取时使用的是[0x1000]。我知道这会导致4k块的溢出,就像将bufferSize设置为4096一样。我的问题是,为什么他们会使用十六进制值而不是整数?从实际的角度来看,没有区别。它们本质上是相同的值。然而,正如你可能知道的,计算机倾向于更好地处理二次幂。0x1000只是倾向于比4096更清晰地呈现想法 这也是为什么要使用十六进制而不是十进制值来指定标志值的原因。它清楚地告诉读者,它的值不是一个十六进制

我正在读书。在写入文件时,microsoft将bufferSize设置为4096字节,但在读取时使用的是[0x1000]。我知道这会导致4k块的溢出,就像将bufferSize设置为4096一样。我的问题是,为什么他们会使用十六进制值而不是整数?

从实际的角度来看,没有区别。它们本质上是相同的值。然而,正如你可能知道的,计算机倾向于更好地处理二次幂。0x1000只是倾向于比4096更清晰地呈现想法

这也是为什么要使用十六进制而不是十进制值来指定标志值的原因。它清楚地告诉读者,它的值不是一个十六进制的巧合的干净数字,而是经过深思熟虑的。也就是说,当十六进制完全不相关时,不要使用十六进制

int numberOfCats = 0xA7;

希望有帮助

我不知道如何理解这个问题;十进制表示法中的整数值4096正好是十六进制表示法中的1000。你的问题是为什么有时使用十进制表示法,有时使用十六进制表示法?它们使用的是整数,只是十六进制表示法。至于原因,在这种情况下,这是一种文体选择。使用十六进制表示法有很多优点,例如它是一个简单的常数。你可以用几种方法定义相同的常量值,选择哪种方法对程序来说绝对没有关系,但它可能对人类阅读源有用,例如常量1,所以答案是计算机处理得更好?@Sinatr不,它是计算机程序员处理得更好。计算机更好的部分是讨论二的幂,而不是使用十六进制数。@Sinatr不,技术上不。计算机不关心您是否分配了相当于完整内存页、内存页的3/4倍的量,或者是否在BIOS上写入。然而,两种力量更容易处理。