在Matlab中将十六进制数转换为十进制数
我有类似以下内容:
92e1a330
3ff32343
4a443455
23d4df43
5323e345
我意识到 Matlab 无法使用 textscan 读取十六进制数字,因此我将整个文本文件作为字符串读取。问题是,当我尝试使用 hex2dec() 将字符串转换为十六进制时,我不太明白我想要的。例如,对于 92e1a330
十六进制,hex2dec
返回 2.4643e+009
而不是 2464260912
。有可能以某种方式解决这个问题吗?谢谢!
I have something like the following:
92e1a330
3ff32343
4a443455
23d4df43
5323e345
I realised that Matlab is not able to read hex numbers using textscan so I read the whole text file as a string. The problem is that when I try to use hex2dec() to convert the string to hex, I don't quite get what I want. For instance, for 92e1a330
hex, hex2dec
returns 2.4643e+009
instead of 2464260912
. Is it possible to fix that somehow? Thanks!
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(3)
完整的数字就在那里,只是隐藏在显示格式后面。例如:
The full number is there, just hidden behind the display formatting. For example:
您可以调整 Matlab 显示数字的方式,但实际值的存储精度通常比打印到屏幕上的精度更高。
要调整显示格式,请使用
format
命令。例如:现在将格式设置为长格式
不管怎样,数字都是一样的
有很多格式选项,包括显示为十六进制,显示为工程(像科学,但指数始终是 3 的倍数)。
帮助格式
了解更多信息。You can adjust the way Matlab displays numbers, but the actual values are generally stored with more precision than it prints to the screen.
To adjust the display format, use the
format
command. For example:Now set the format to a long format
Regardless, the numbers are the same
There are a lot of format options, including display as hex, and display as engineering (like scientific, but the exponent is always a multiple of 3).
help format
for more.正如其他人回答的那样,数字就在那里,但Matlab由于格式设置而省略了一些数字。
一个简单的方法是强制 hex2dec 的结果为整数,然后所有数字都会显示出来。例如:
x =
2464260912
As others have answered, the number is there, but Matlab omits some digits due to the format setting.
A simple way is to force the result from hex2dec to be integer, and then all digits will show up. For example:
x =
2464260912