你好,我使用.net框架4.5 Visual Studio 2015,如果它很重要,我的Resharper不断建议我从十进制数转换为十六进制。这是为什么 ?如果使用十六进制,是否有任何性能奖励?使用十六进制而不是十进制更有效吗?
3
A
回答
8
源语言中数字文字的格式绝对没有性能差异,因为转换是由编译器完成的。从一种表示切换到另一种表示的唯一原因是代码的可读性。
使用十六进制文字的两种常见情况是表示颜色和位掩码。由于颜色表示通常在字节边界处分开,因此解析数字0xFF00FF
要比16711935
容易得多:十六进制格式告诉您,红色和蓝色分量已最大化,而绿色分量为零。另一方面,十进制格式要求您执行转换。
位掩码是相似的:当您使用十六进制或八进制表示法时,很容易看到哪些位是1,哪些位是零。您需要学习的只是一个由16位数字组成的简短表格,其格式为0
到F
。您可以立即知道0xFF00
的高8位设置为1
,低8位设置为0
。与65280
一样,对于大多数程序员来说要困难得多。
4
在代码中使用十进制和十六进制编写常量时,绝对没有性能差异。两者将被翻译成完全相同的IL,并最终被打到相同的机器码。
使用哪种表示方式对您正在进行的工作更有意义,在代码解决的问题的上下文中更清晰易懂。
相关问题
- 1. 使用十进制或十六进制
- 2. cout打印十六进制而不是十进制
- 3. 将十进制转换为十六进制和十六进制
- 4. 十六进制
- 5. 十六进制
- 6. C#:ASCII到十六进制:输出十六进制为“01”而不是“1”
- 7. 十六进制和十进制转换
- 8. 十六进制,八进制,二进制到十进制(C++)
- 9. Android WifiManager - 以十六进制或不以十六进制
- 10. 使用限制将十进制转换为十六进制
- 11. 使用十六进制值操作时不能使用十六进制功能
- 12. 输入十六进制并用C++读取十六进制
- 13. 十六进制值
- 14. 为十六进制
- 15. 0x00000000十六进制?
- 16. Console.WriteLine(十六进制)
- 17. 什么是十六进制?
- 18. (Java)将十进制/十六进制写入文件,而不是字符串
- 19. 十六进制数字是负数吗?
- 20. 使用PHP将十进制转换为十六进制
- 21. 我可以用二进制而不是十六进制嵌入数字吗?
- 22. 转换十六进制,十进制,八进制和ASCII?
- 23. 十进制/十六进制/二进制转换
- 24. 十六进制为二进制和十进制在matlab中
- 25. 十六进制表示为char十六进制的文本
- 26. 添加十六进制值以得到十六进制结果
- 27. 将字符串转换为十六进制到十六进制
- 28. 转换十六进制字符串十六进制值
- 29. 如何十六进制转换为十六进制
- 30. 将十六进制拆分为2个十六进制值
我很好奇。你能告诉我们R#提出这个建议的确切代码吗? – juharr
@juharr可能不会提出建议;如果用户想要,它将提供快速执行该编辑。 [很多关于R#的问题归结为这种差异](http://stackoverflow.com/a/10976704/71059) – AakashM