使用十六进制而不是十进制更有效吗?

时间:2016-03-04 19:35:24

标签: c# hex decimal resharper

您好我正在使用带有.net framework 4.5的visual studio 2015,如果它很重要并且我的Resharper一直建议我从十进制数转换为十六进制数。这是为什么 ?如果使用hex,是否有任何表现奖励?

2 个答案:

答案 0 :(得分:8)

源语言中的数字文字格式之间绝对没有性能差异,因为转换是由编译器完成的。从一个表示切换到另一个表示的唯一原因是代码的可读性。

使用十六进制文字的两种常见情况是表示颜色和位掩码。由于颜色表示通常在字节边界处拆分,因此解析数字0xFF00FF16711935容易得多:十六进制格式告诉您红色和蓝色组件最大化,而绿色组件为零。另一方面,十进制格式要求您执行转换。

位掩码类似:当使用十六进制或八进制表示时,很容易看出哪些位是1,哪些位是零。您需要学习的只是一个十六位模式的短表,对应于十六进制数字0F。您可以立即告诉0xFF00高8位设置为1,低8位设置为0。对65280执行相同的操作对于大多数程序员来说要困难得多。

答案 1 :(得分:5)

在代码中以十进制与十六进制编写常量时,绝对没有性能差异。两者都将被转换为完全相同的IL,并最终被JITted转换为相同的机器代码。

使用对您正在进行的工作更有意义的表示,在您的代码解决的问题的上下文中更清晰,更容易理解。