gpt4 book ai didi

c# - C# 中的十六进制数字和十进制数字

转载 作者:太空狗 更新时间:2023-10-30 01:24:56 25 4
gpt4 key购买 nike

我下载的一些 C# 代码包含基于十六进制的计算。

eg. int length = ((((byte) hexstr[0x10]) & 0x80) > 0) ? 0x10 : 8;

当我将此代码更改为正常的基于十进制的代码时

int length = ((((byte) hexstr[16]) & 128) > 0) ? 16 : 8;

它给出了相同的解决方案而没有给出任何错误。
它仍然可以正常运行。
所以我想知道为什么大多数代码都使用十六进制基数,这比普通的十进制数字更难理解。

如果有谁知道,请告诉我。

最佳答案

它更清楚地显示位模式。 0x80 显然是顶部 nybble 设置为 8 且底部 nybble 设置为 0 的值......从十进制值来看根本不清楚。

再举一个例子,如果我想屏蔽一个整数的第二个和第三个字节,我可能会使用:

int masked = original & 0xffff00;

我在没有使用计算器或类似工具的情况下编写了该代码。我不可能对等价的十进制数做同样的事情 - 我无法在脑海中将 65535 乘以 256 并有任何成功的可能性,而且生成的代码无论如何也不会那么清晰。

关于c# - C# 中的十六进制数字和十进制数字,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8047772/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com