matlab - 为什么 MATLAB uint8 值和 uint16 值不同

标签 matlab

我已将 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/

相关文章:

matlab - ismember 不为 NaN 工作

matlab - 在Matlab中从声音文件读取数据

matlab - 在matlab中可视化3d数据量

java - 我如何分析约 13GB 的数据?

matlab - 在没有计算机视觉系统工具箱的情况下将文本插入图像 - Matlab

Matlab - 将低通滤波器应用于矢量?

matlab - 通过 SOM 聚类

java - 从 MATLAB 运行 JavaScript 命令以获取 PDF 文件

matlab - Sublime Text 3 构建系统 : keep console running

matlab - 为什么 isequaln(f, simplify(f)) 为假?