如何在“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我可以要求建议我如何编写代码来生成这样的输出?

答案(2)

dpb
dpb 2021年7月5日
编辑:dpb 2021年7月5日
> > uint8 (hex2dec(重塑(strrep (sprintf (' % # X ',2748),“X”,),2,[])”。)
ans =
2×1 uint8列向量
10
188年
> >
2的评论
dpb
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年
> >

登录置评。


乔纳斯
乔纳斯 2021年7月7日
编辑:乔纳斯 2021年7月7日
输入= uint16 (2748)
输入=uint162748年
输出= 0 (2,1,“uint8”);
输入、输出(1)= bitshift (8);
(2)= bitand输出(输入,255);
输出
输出= 2×1
188
十六进制是一种显示方式,不是一个数据类型。

下载188bet金宝搏


释放

R2021a

社区寻宝

找到宝藏在MATLAB中央,发现社区如何帮助你!

开始狩猎!