如何在“S十进制转换成十六进制功能”Matlab ?
2视图(30天)
显示旧的评论
你好,
我用Matlab 2021 a。在仿真金宝app软件,我给输入值(2748)和期望输出值在十六进制。当我们知道仿真软件不支持“字符”金宝app,我在UINT8生成输出。金宝app但我的要求是产生:
输入:UINT16 (2748)
输出:UINT8
y1[0] = 10(十进制转换的“0”)
y1[2] = 188(十进制转换“公元前”)
我写了下面的代码转换:
z[0] = *情况;/ / z是向量处理数据类型UINT16并输入情况
z [1] = 16;
z [2] = fmod (z [0], 16);
z [3] = (z [0] - z [2]) / z [1];
z [4] = fmod (z z [3], [1]);
z [5] = (z z [3], [4]) / z [1];
z [6] = fmod (z z [5], [1]);
z [7] = (z z [5], [6]) / z [1];
y1 [0] = z [7];/ /输出y = 0 / /输出数据类型UINT8
y1 [1] = z [5];/ /输出= 10
y1 [2] = z [4];/ /输出= 11
y1 [3] = z [2];/ /输出= 12
但我需要输出
y1[0] =十进制转换的前两个字节= 00 10 > 10
y1[1] =十进制转换的前两个字节= 11 12 > 188
我也附加模型块和输出。金宝app我可以要求建议我如何编写代码来生成这样的输出?
0评论
答案(2)
dpb
2021年7月5日
编辑:dpb
2021年7月5日
> > uint8 (hex2dec(重塑(strrep (sprintf (' % # X ',2748),“X”,”),2,[])”。)
ans =
2×1 uint8列向量
10
188年
> >
2的评论
dpb
2021年7月7日
这是奇怪的。世界上为什么不能接受,但我猜它是什么……一种方法是
> > txt = cellstr(重塑(strrep (sprintf (' % # X ',2748),“X”,”),2,[])。');
> > uint8 (cellfun (@ (c) sscanf (c,' % x '),txt))
ans =
2×1 uint8列向量
10
188年
> >