matlab数据类型转换

发布网友 发布时间:2022-03-29 11:19

我来回答

1个回答

热心网友 时间:2022-03-29 12:49

一般来说用dec2hex及hex2dec就可以。
ss='010600001388849C';
ssDec
=
hex2dec(ss);
ssHex
=
dec2hex(ssDec);
format
hex;
disp(ssHex);
不过前提是你的机器能处理这么大的数。
我用小一点的数比如说ss='01600001388849C'测试的结果是没问题的,但是我的机器不能处理大于2^52的数,所以很抱歉无法完成你给出的这个例子。
====================================
补充回答:
拆分合并的方法试了试,
但是不知道你究竟要怎么用,也没有继续;希望你能把问题描述的更详细一点,特别是最终目的是干什么。
Matlab中关于大数处理有几个方法
1.调用maple内核运算,但是我的matlab版本中没有;
2.拆分合并,ss(1)~
ss(16)依次对应'010600001388849C'
中的各个位上的数,可以考虑用上。
3.换Ubuntu
Linux,可支持8G内存运算,也许可行。
4.实在没有适合方法,就只能改算法了。
很抱歉还是没搞定。
====================================
补充回答:
终于理解你的问题了,呵呵!
你试试下面这样的写法可不可以:
A
=
[1;
06;
0;
0;
19;
136;
132;
156];
fwrite(s,
A,
'char',
'async');
其中,A是对应你要输入的'010600001388849C'
这个十六进制数的十进制表示,你用dec2hex(A)可以得到
01
06
00
00
13
88
84
9C.
有可能还有问题,不过你可以尝试在这个思路上再改改。
====================================

声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com