以十六进制格式格式化期间未定义的结果

undefined result during formatting in hexadecimal form

我无法理解以下结果的原因

>> format hex
>> 10

ans =

   4024000000000000

>> 12

ans =

   4028000000000000

据我所知,这个数字应该以十六进制格式编写,但为什么会出现这样的结果?我已经尝试过不同的变体,例如像这样

>> x=20;
>> format hex
>> x

x =

   4034000000000000

如果我会尝试不同的格式

>> format long
>> x=10

x =

    10

>> x=10.456

x =

  10.456000000000000

效果不错,有什么问题吗?

Matlab 的行为绝对正确,x=12 创建了一个 64 位浮点数 具有呈现的十六进制表示形式。您可能想要的是:

    >>uint32(12)

ans =

   0000000c