程序员应该知道二进制数和算术的绝对最小值是多少?

Rah*_*hul 3 binary

虽然我知道二进制表示的基本概念,但我从未真正编写任何使用二进制算术和运算的代码.

我想知道

  • 程序员应该了解二进制数和算术的基本概念是什么?,和

  • 以什么"实际"方式可以在编程中使用二进制操作.我已经看到了移位运算符和XOR等的一些"酷"用法,但是有一些典型的问题,使用二进制运算是一个明显的选择.

请指点一些好的参考资料.

Bra*_*lor 6

如果您正在开发低级代码,那么了解各种类型的二进制表示至关重要.如果您正在开发嵌入式应用程序,或者您正在处理数据的低级传输或存储,您会发现这非常有用.

话虽这么说,我也相信即使你在更高的抽象层次上工作,理解事物在低级别的工作方式也是有用的.例如,我发现通过理解事物在低级别表示和操作的方式,可以提高我开发高效代码的能力.我也发现这种理解对于使用调试器很有用.

以下是研究的二进制表示主题的简短列表:

  • 编号系统(二进制,十六进制,八进制,十进制,......)
  • 二进制数据组织(位,半字节,字节,单词......)
  • 二进制算术
  • 其他二进制运算(AND,OR,XOR,NOT,SHL,SHR,ROL,ROR,......)
  • 类型表示(boolean,integer,float,struct,...)
  • 位字段和打包数据

最后......这里有一套很好的Bit Twiddling Hacks,你可能会觉得很有用.