您好我正在使用带有.net framework 4.5的visual studio 2015,如果它很重要并且我的Resharper一直建议我从十进制数转换为十六进制数。这是为什么 ?如果使用hex,是否有任何表现奖励?
答案 0 :(得分:8)
源语言中的数字文字格式之间绝对没有性能差异,因为转换是由编译器完成的。从一个表示切换到另一个表示的唯一原因是代码的可读性。
使用十六进制文字的两种常见情况是表示颜色和位掩码。由于颜色表示通常在字节边界处拆分,因此解析数字0xFF00FF
比16711935
容易得多:十六进制格式告诉您红色和蓝色组件最大化,而绿色组件为零。另一方面,十进制格式要求您执行转换。
位掩码类似:当使用十六进制或八进制表示时,很容易看出哪些位是1,哪些位是零。您需要学习的只是一个十六位模式的短表,对应于十六进制数字0
到F
。您可以立即告诉0xFF00
高8位设置为1
,低8位设置为0
。对65280
执行相同的操作对于大多数程序员来说要困难得多。
答案 1 :(得分:5)
在代码中以十进制与十六进制编写常量时,绝对没有性能差异。两者都将被转换为完全相同的IL,并最终被JITted转换为相同的机器代码。
使用对您正在进行的工作更有意义的表示,在您的代码解决的问题的上下文中更清晰,更容易理解。