5

根据 docs.oracle.com:-

byte:byte 数据类型是一个 8 位有符号二进制补码整数。它的最小值为 -128,最大值为 127(含)。字节数据类型可用于在大型数组中节省内存,其中内存节省实际上很重要。它们也可以用来代替 int ,它们的限制有助于澄清您的代码;变量的范围有限这一事实可以作为一种文档形式。

字节 - 8 位
2^7 2^6 2^5 2^4 2^3 2^2 2^1 2^0

128 64 32 16 8 4 2 1)

将所有这些数字相加,我们总共得到 255。那么如何计算 -128 到 127 的范围。它是在某个地方硬编码还是这个范围有更多的技术性?

任何建议,将不胜感激。

4

10 回答 10

9

让我们计算 1 字节的范围

  1. 1 位可以取 0 或 1
  2. 1 字节 = 8 位
  3. 第一位用作符号( - 或 + )
  4. 然后剩余位为 7
  5. 所以我们可以为一个符号写 2^7 = 128 个不同的数字
  6. 我们得到 0 作为正号。那么我们有 128 个数字表示负数,127 个数字表示正数和 0(零)
  7. 所以范围是-128 到 127 包括 0
于 2020-01-12T04:44:07.667 回答
7

它是一个有符号类型,这意味着它的范围仍然是 255(正如您正确计算的那样),但它从 -128 开始。因此,范围的一半低于零,1 个可能的数字是 =(零),其余 127 个高于 0。

第一位是符号。(1 - 减,0 - 加)

于 2013-06-07T11:49:36.057 回答
6

范围计算公式为:-2^(n-1) 到 (2^(n-1)-1)

其中 n = 否。原始数据类型的位数。例子:

对于 int 数据类型,n 为 32,简而言之数据类型,n 为 16 等。

因此,int 范围将是:-2^(32-1) 到 (2^(32-1)-1)

通过使用相同的公式可以计算字节范围,short,float 和 double。

于 2017-11-16T04:47:49.040 回答
2

这是因为第一位用于符号,因为数据类型是有符号的。

请参阅http://en.wikipedia.org/wiki/Signed_number_representations

由于 Java 中没有unsigned原始类型(如 C 或 C#),因此如果您需要“溢出”边界,通常将其转换为更大的类型。

于 2013-06-07T11:49:32.960 回答
1

Java 中计算范围的公式
-2 (n-1)到 +2 (n-1) -1
其中 n 是位数(1 字节= 8 位)

因此,对于字节类型范围将是:-2 (8-1)到 +2 (8-1) -1
或 -2 (7)到 +2 (7) -1
或 -128 到 +127

于 2018-05-30T08:15:23.387 回答
1

最后一位,即我们写的数字 8 2^7 是一个符号位,它决定负号或正号,因此它是 2^0 +2^1 +2^2 +2^3 +2^4 +2^5+ 2^6

于 2017-04-13T02:16:59.150 回答
0

它源于将带符号值的标准表示为二进制数。有关完整说明,请参见http://en.wikipedia.org/wiki/Two%27s_complement

-富有的

于 2013-06-07T11:49:24.477 回答
0

让我们计算 C 语言数据类型 char中 1 个字节的范围

  1. 如果是char数据类型,让我们考虑 -
  2. 1 字节 = 8 位
  3. 2^8 = 256
  4. 所以我们可以写2^8 = 256
  5. 仅在无符号0 到正整数的情况下。4.1签署的情况下
  6. 我们有 128 个数字作为负数,0(零)和 127 个数字作为正数
  7. 所以范围是 -128 0 +127
  8. 这里 0 占用一位
于 2021-12-24T10:18:53.447 回答
-1

位由 0 和 1 组成。字节通常由 8 位组成。因此可以使用下面给出的通用公式计算这些值,

no of values 数据类型可以有= 2^n(2 power n),其中 n 表示位数。所以字节数据类型的值= 2^8(i.e 1 byte=8 bits),这里n=8 字节值=256

并且它应该在零的两侧相等(负值的一半和正值的一半)。因此字节的范围是从 -128 到 127。

于 2017-08-14T11:28:04.383 回答
-3

数据类型的范围所以现在我们知道我们是如何计算整数数据类型的范围的。这个逻辑适用于所有的整数数据类型。

下面给出了所有数据类型的完整详细信息,

S.NO 数据类型位范围值

1 boolean 1 – true 或 false(1 或 0)

2 字节 8 -128 到 127. 256(2^8)

3 空头 16 -32,768 至 32,767 65,536(2^16)

4 个整数 32 -2^31 到 (2^31)-1 2^32

5 长 64 参考注 2^64

6 浮动 32 参考注意 ———</p>

7 双 64 参考注意 ——-

8 个字符 16 0 到 65,535 65,536(2^16)

于 2013-11-19T17:17:07.440 回答