objective-c - Sizeof short——寻找最小值

标签 objective-c c sizeof

我正在阅读一本书和其中一个问题。

编写一个程序,显示一个 float 消耗了多少内存。 在您的 Mac 上,short 是一个 2 字节的整数,一位用于保存符号(正数或负数)。它可以存储的最小数字是多少?最大的是什么? unsigned short 仅包含非负数。它可以存储的最大数字是多少?

所以我得到了关于 float 消耗多少内存的第一部分,但我不知道如何找到最小或最大的数字。谁能解释一下?

提前致谢 S.

最佳答案

让我们忘记 short 或 unsigned short。假设您有 1 个字节,即 8 位。它可以显示的最大数量是多少?每个位都有两个状态 01。所以 8 位有 28 个组合。这是 256。现在我们有一个 0 值,所以它是 0 到 255,总共 256 个数字。现在回到你原来的问题,

你有 2 个字节,这意味着 2*8=16 位。对于带符号的 short,符号位消耗了一位。所以你总共有 15 位。这意味着 215 = 32768 种组合。但是你的符号位也有两种状态。 0 和 1。对于正数,它的范围是 0 到 32767,对于负数,它的范围是 -32768 到 0。所以带符号的 short 可以包含 -32768 到 32767 范围内的值。 现在对于 unsigned short 没有符号位。所以所有 16 位都可用。所以你有 216 = 65536 种组合。取值范围为0到65535,共65536个数字。

另请阅读 this 中的答案线程清楚地知道为什么它的范围在正数中为 32767 而在负数中为 -32768。

关于objective-c - Sizeof short——寻找最小值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22926190/

相关文章:

ios - 一些用户没有出现在搜索解析 iOS 中

ios - 在 iOS 上无法从 Pebble 接收 AppMessage

计算一个节点是否在 BST 中有任何子节点

c++ - gcc 是否对 VLA 的 sizeof 运算符进行了不同的评估?

c - Sizeof 指针与它在 printf 中的表示不同?

iOS - 这个应用程序使用什么 Controller 来显示日期和控制向前和向后移动一个日期?

iphone - 如何在点击后突出显示电子邮件地址

c - 从类型 'char[5]' 分配给类型 'char *' 时的类型不兼容

c - 如何将 .pem 文件中的公钥传递给 Polarssl rsa_context

c - 在 C 中计算数组中字符串元素数量的正确方法