2010,后来解析int64()和uint64 () ?

1视图(30天)
沃尔特·罗伯森
沃尔特·罗伯森 2011年7月12日
在释放在2010年之前,文字数字里面int64()和uint64()调用由MATLAB理解意义解析数字类双和调用int64()或uint64()方法生成的两倍。例如,
> > uint64 (18446744073709551600)
ans =
18446744073709551615
从2010年发布,文字数字而不是完全价值解析时间和给定适当的类型。
我没有R2010a或后可用,所以我会问人调查的局限性,解析的新版本,然后回来报告。
例如:
  • uint64(18446744073709551600 + 0)一样uint64 (18446744073709551600) ?
  • 同上uint64 (18446744073709551600 * 1) ?
  • 同上uint64 (+ 18446744073709551600) ?
  • 同上uint64 (18446744073709551600。) ?
  • 同上uint64 (18446744073709551600.1) ?
  • 同上uint64 (18446744073709551600 e0) ?
  • 如何int64 (2 ^ 64 - 15) ?
  • uint64(18446744073709551600/2)等于uint64 (9223372036854775800) ?
和更普遍,有任何表达式X的绝对值不超过2 ^ 53岁的
B = int64 (X);
是不一样的
= X;
B = uint64(一个);
吗?

答案(1)

弗里德里希
弗里德里希 2011年7月12日
你好,
在这个测试R2011a 64位:
> > int64 (18446744073709551600)
ans =
9223372036854775807
> > uint64 (18446744073709551600 + 0)
ans =
18446744073709551615
> > uint64 (18446744073709551600 * 1)
ans =
18446744073709551615
> >
uint64 (+ 18446744073709551600)
ans =
18446744073709551615
> >
uint64 (18446744073709551600)。
ans =
18446744073709551615
> > uint64 (18446744073709551600.1)
ans =
18446744073709551615
> > uint64 (18446744073709551600 e0)
ans =
18446744073709551615
> > int64 (2 ^ 64 - 15)
ans =
9223372036854775807
> > uint64 (18446744073709551600/2)
ans =
9223372036854775808
> > uint64 (9223372036854775800)
ans =
9223372036854775800
5个评论
丹尼尔Shub
丹尼尔Shub 2011年8月19日
R2011a 64位的Linux上
> > int64 (+ 9223372036854775800)
ans =
9223372036854775807

登录置评。

标签

下载188bet金宝搏

社区寻宝

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

开始狩猎!