浪潮NF8460M3最大存储是多少?

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了浪潮NF8460M3最大存储是多少?相关的知识,希望对你有一定的参考价值。

参考技术A 标配硬盘是300G——HDS中国西区总代理神州数码集团售前工程师很高兴为您解答!

NSNumber 可以存储的最大值是多少?

【中文标题】NSNumber 可以存储的最大值是多少?【英文标题】:What's the largest value an NSNumber can store? 【发布时间】:2013-02-21 05:25:48 【问题描述】:

// ok
    NSNumber *value = @(1 << 31); 

// gives compiler error, so max NSNumber is 32-bit uint?
    NSNumber *value = @(1 << 32); 

【问题讨论】:

答案已经回答了实际问题,所以我将解释错误。 1 &lt;&lt; 32 中的 1 是一个 int,编译器在执行移位时使用它。由于 int 是 32 位,因此您不能将其移动 32 个位置。如果你使用@(1ULL &lt;&lt; 32),它会起作用,因为1ULL 有一个无符号长长类型。 谢谢,非常好的信息。 为什么这个问题会被否决?投反对票? 【参考方案1】:

NSNumber 实际上是一个class cluster,这意味着当您创建一个实例时,您可能会获得各种具体子类中的任何一个,每个子类都能够存储不同类型的数字类型。可用的实际类型及其大小可能取决于机器。

查看NSNumber documentation 向您展示了您可以存储的不同类型的数字:两个最大的整数选项是+numberWithLongLong:(或+numberWithUnsignedLongLong:),它存储一个long long+numberWithInteger:(或+numberWithUnsignedInteger:),其中存储了一个NSInteger。因此,最大 NSNumber 值受这些类型的限制。

基金会文档指出:

在构建 32 位应用程序时,NSInteger 是一个 32 位整数。 64 位应用程序将 NSInteger 视为 64 位整数。

编译器很聪明,会创建一个与你的数字字面量相同类型的 NSNumber。如上面的 cmets 所述,如果您的机器具有超过 32 位的 unsigned long long 类型,则可以使用 @(1ULL &lt;&lt; 32)

此外,NSNumber 可免费桥接到 CFNumber,这意味着您可以自己试用 CFNumberGetByteSize() 之类的功能 — 并查看 CFNumber 文档的 Number Types 部分。您会看到这些与 NSNumber 选项基本相同。

此外,NSDecimalNumber 类(NSNumber 的子类)提供了+maximumDecimalNumber 方法,您可以使用该方法查找可以存储在 NSDecimalNumber 中的最大值。 NSDecimalNumber 和浮点类型可能能够存储比整数类型更大的数字,但精度会降低。

【讨论】:

NSNumber *value = @(pow(2, 128)); 呢? @Sebastian 由于pow 返回double,编译器将使用+numberWithDouble:(或与之等效的东西)。 那时您可以存储的最大整数将使用无符号长整型,即 64 位。 (18,446,744,073,709,551,615)。 NSDecimalNumber 在技术上是一个不同的类,因此具有不同的最大数量。 谢谢大家。我更新了我的答案以解决不同类型的最大值。 @lnafziger 您的评论应该是公认的答案。

以上是关于浪潮NF8460M3最大存储是多少?的主要内容,如果未能解决你的问题,请参考以下文章

浪潮服务器 NF 8460M4 的PM8060 RAID卡设置添加热备方法

浪潮服务器nf5280m4如何安装深信服桌面云

浪潮服务器维护-开启JBOD模式

浪潮服务器mgmt默认ip是多少

为VMwareESXi添加驱动

浪潮各机型前面板指示灯含义