【软件工程师学硬件】之 二进制、十六进制

想让软件工程师去接受二进制,算是勉勉强强,如果让他去接受十六进制,可能就有些为难他了。因为大部分软件工程师平时根本就不接触二进制和十六进制,他们唯一的进制就是十进制。
但是,硬件是底层的玩意,偏偏只认识二进制,就是说,硬件程序编译之后全是二进制的,不然单片机不认识。即使硬件编程也可以用c语言,也可以使用十进制,但是硬件资源配置大多数都是以位的形式存在的,软件工程师很难理解这种位存储的方式,实际上软件工程师也干过这样的事情,比如说为了提高传送效率,定义一个定长的字符串,然后第一个字符代表标识1,第二个代表标识2,如此类推。硬件工程师看到这里,一般会很生气,觉得软件工程师太奢侈了,一个字符串来代替位存储,多浪费啊。硬件工程师抠到一个字节里面的八个位(bit),但是这个位要么是0,要么是1,可不能像一个字符那样,可以随便赋值,但是已经能够满足硬件工程师的需要,单片机资源紧张,这样通过位来定义变量可以节省很多空间。当然,通过位来定义配置的最大好处是效率高,单片机可以通过基本的位运算来进行操作,效率非常之高。
由此可见,二进制对于硬件工程师太重要了,那十六进制可以看成是二进制的缩写形式,主要是为了在编程时方便对二进制进行表示和操作,所以这两种进制都必须了解。
关于二进制和十六进制的转换,网上有很多讲解。此处就省略不提了。

猜你喜欢

转载自blog.csdn.net/wwwmagic/article/details/91372639