我已将 uint8 值声明为 A = [4, 8, 16, 32];
并转换为值 B = typecast(uint8(A), 'uint16' )
,但答案是 2052 8208
如果有人能帮助我理解其背后的原因,我将非常感激。
最佳答案
您可能希望 Matlab 将您的 uint8
值放入 uint16
变量中。这不是类型转换函数正在做的事情。它将保留从输入到输出的字节数。因此,在您的示例中,它将 4 和 8 的位表示合并为 uint16
数字,相当于 16 和 32。
因此,4 的二进制表示为 00000100,8 的二进制表示为 00001000,合并在一起(形成 16 位数字),得到 0000100000000100,即 2052。
关于matlab - 为什么 MATLAB uint8 值和 uint16 值不同,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36566618/