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

时间:2015-01-25 11:08:57

标签: matlab

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

>> 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

效果很好,有什么问题?

1 个答案:

答案 0 :(得分:3)

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

    >>uint32(12)

ans =

   0000000c