目录
问题:
在某些场景,如串口传输数据、图像读取等,需要uint数据存储形式进行转换,例如将uint16数据两个字节分开存储,即将uint16变成2个uint8。这无法用强制类型转换去实现,因为会发生截断,这时可以利用移位的思想进行处理。
解决办法:
利用移位思想,先取源数据高位,再取低位。以uint16转成两个uint8为例,取高位即将uint16右移8位或除以256取整;取低位为uint16对256取余。实际操作如下:
注意:
Matlab整数除法是四舍五入,即上图中直接a/256=256,此时fix取整是没意义的,取完还是256。所以除法时先将a转为double。