如何将两个字节转换为一个16位数?

Jay*_*Kim 9 embedded assembly byte bit

据我所知,1个字节将保存0-255之间的数字.并且16位数字介于0-65535之间.

如果我试图使用两个独立的8位寄存器来表示一个16位数字......我该怎么做?数学如何运作?

谢谢!

das*_*ght 15

数学计算如下:

sixteenBitNumber = 256*upperByte + lowerByte;
Run Code Online (Sandbox Code Playgroud)

使用移位和按位操作:

sixteenBitNumber = (upperByte<<8) | lowerByte;
Run Code Online (Sandbox Code Playgroud)

在大多数CPU中,甚至是一些过时的8位CPU,这种解释都是在硬件中完成的:将字节加载到16位寄存器的部分或加载到可作为16位对的独立8位寄存器中,以及硬件使用数据就好像它是一个16位数字一样.