`

为什么Java byte 类型的取值范围是-128~127(short int long同理)

 
阅读更多
为什么Java byte 类型的取值范围是-128~127
0  00000000
    1  00000001
  ...  ........
  127  01111111
----------------
共 128 个

   -1  11111111
   -2  11111110
  ...  ...
-128  10000000
----------------
共 128 个

概念:负数的补码是该 数 绝 对 值 的 补 码 按 位 取 反 ,然 后 对 整个数 加 1

步骤:
1.确定byte是1个字节,也就是8位
2.最大的应该是0111 1111,因为第一位是符号位,0表示正数
3.最小的应该是1000 0000,同理,表示负数最小的(1111 1111是最大的负数-1)
4.0111 1111即127
5.1000 0000按照最下面的解释为先减一,得到0111 1111,然后按位取反得到1000 0000,该结果为欲求负数的绝对值,所以结果是-128(和概念反着来求出该负数)

=========================================================
在计算机内,定点数有3种表示法:原码、反码和补码

[原码]就是前面所介绍的二进制定点表示法,即最高位为符号位,“0”表示正,“1”表示负,其余位表示数值的大小。
[反码]表示法规定:正数的反码与其原码相同;负数的反码是对其原码逐位取反,但符号位除外。
[补码]表示法规定:正数的补码与其原码相同;负数的补码是在其反码的末位加1。

====================================================

3.4.1 补 码
Java使 用 补 码 来 表 示 二 进 制 数 ,在 补 码 表 示 中 ,最 高 位 为符号 位 ,正 数 的 符 号 位 为 0,负 数 为 1。 补 码 的 规 定 如 下 :
对 正 数 来 说 ,最 高 位 为 0,其 余 各 位 代 表 数 值 本 身 (以 二 进制表 示 ),如 +42的补 码 为 00101010。
对 负 数 而 言 ,把 该 数 绝 对 值 的 补 码 按 位 取 反 ,然 后 对 整个数 加 1,即 得 该 数的 补 码 。 如 -42的 补 码 为 11010110 (00101010 按位 取 反 11010101 +1=11010110 )
用 补 码 来 表 示 数 ,0的 补 码 是 唯 一 的 ,都 为 00000000。 (而 在原码 ,反 码 表 示中 ,+0和 -0的 表 示 是 不 唯 一 的 ,可 参 见 相 应 的书 籍 )。 而 且 可 以用 111111表 示 -1的 补 码 (这 也 是 补 码 与 原 码和 反 码 的 区 别 )。
分享到:
评论

相关推荐

    关于各数据类型取值范围

    数据类型取值范围详解 在程序设计中,数据类型是指变量或表达式的分类,它决定了变量或表达式的取值范围、存储空间和参与运算的规则。不同的数据类型具有不同的取值范围和存储空间,本文将对各种数据类型的取值范围...

    Java程序设计基础:基本数据类型.pptx

    (byte、short、int、long) (float、double) 数组 [ ] (boolean) 基本数据类型 整型 类型名称 占用存储空间 取值范围 byte 1字节(8位) -27~-27 -1即-128~127 short 2字节(16位) -215~215 -1 int 4字节(32位) -...

    java中基本数据类型的取值范围

    * Byte:8 位带符号整数,取值范围为 -128 到 127 之间的任意整数。 * Short:16 位无符号整数,取值范围为 -32768 到 32767 之间的任意整数。 * Int:32 位带符号整数,取值范围为 -2^31 到 2^31-1 之间的任意整数...

    Java中8中基本数据类型

    例如,当一个byte类型的值与一个int类型的值相加时,byte类型的值会自动转换为int类型,然后执行加法运算。如果操作数中有double类型的值,则所有其他数值类型都将转换为double类型。 #### 字节与位 - 一个字节...

    Java数据类型练习.doc

    * byte:8 位整数,取值范围为 -128 到 127。 * short:16 位整数,取值范围为 -32768 到 32767。 * int:32 位整数,取值范围为 -2147483648 到 2147483647。 * long:64 位整数,取值范围为 -9223372036854775808 ...

    java byte相互转换详解左右位移

    在Java中,byte是一个8位的有符号整型数据,它的取值范围是-128到127。int是一个32位的有符号整型数据,取值范围是-2,147,483,648到2,147,483,647。由于byte与int的数据位数不同,转换时需要进行特定的处理。 **...

    java byte数组与int,long,short,byte的转换实现方法

    Java中的`byte`类型是8位的,取值范围是-128到127。如果要将其转换为无符号的32位整数`int`,可以使用按位与操作符`&`和0xFF。`DataTypeChangeHelper`类中的`unsignedByteToInt`方法就实现了这一点: ```java ...

    Byte-Short-Int-Long-Java-Primitive-Types:字节短整数长Java原语类型

    在“Byte-Short-Int-Long-Java-Primitive-Types-main”这个项目中,可能包含了与这些原生类型相关的示例代码、测试和文档,供学习者更直观地理解和应用这些概念。通过分析这些文件,可以加深对Java整数类型的掌握,...

    JAVA转byte[]为int,long,double

    在Java编程语言中,将`byte[]`数组转换为`int`, `long`, 和 `double`类型的数据是一项常见的任务,特别是在处理二进制数据或网络通信时。以下将详细讲解如何进行这些转换,并提供相关代码示例。 1. **转换byte[]到...

    JAVA-练习题第2章(ppt文档).pptx

    每种类型都有其取值范围,例如byte类型的取值范围是-128~127,boolean类型的取值范围是真或假等。 3. 变量声明:在Java语言中,变量需要声明其数据类型,例如int x;或者float y;。在声明变量时,可以同时赋值,...

    java基本类型与byte数组互相转换.pdf

    字符类型在 Java 中是 16 位的 Unicode 字符,转换成 byte 数组需要将字符类型转换成 int 类型,然后将 int 类型转换成 byte 数组。例如: ```java public static byte[] charToByteArr(char ch) { byte[] b = new...

    java 数据类型有哪些取值范围多少

    1. byte:字节类型,取值范围是-128到127,占用一个字节。它是最小的数据类型,通常用于原始数据的占位符。 2. short:短整型,取值范围是-32768到32767,占用两个字节。它适用于需要较小数值范围的场景。 3. int:...

    Java数值类型与byte数组相互转换

    Java bytes数组与基本类型的相互转换 Int -> Bytes int64ToByte8 int48ToByte6 int40ToByte5 int32ToByte4 int24ToByte3 int16ToByte2 int8ToByte Bytes -> Int bytesToInt64 bytesToInt48 bytesToInt40 bytesTo...

    mybatis逆向工具generator,中文注释,Byte改Integer

    `Byte`占用一个字节(8位),取值范围为-128到127,而`Integer`则占用四个字节(32位),取值范围大大扩展至-2^31到2^31-1。在实际开发中,如果数据库字段的数值范围远超`Byte`的承载能力,选择`Integer`会更为合适...

    Java4Android开发教程(五)java的基本数据类型特征

    java的数据类型分为基本数据类型和引用数据类型。   基本数据类型分为数值型、字符型(char)、布尔型(boolean)   数值型变量   1、整数型 类型 占用存储空间 表示范围 byte 1字节Byte -128~...

    C#和java数据类型的等价类型

    * long:C#中的 long 类型对应Java中的 long 类型,都是有符号整数,取值范围为 -9,223,372,036,854,775,808 到 9,223,372,036,854,775,807。 三、浮点数类型 C#和Java都支持浮点数类型,包括 float 和 double 两...

    JAVA程序设计课件-变量的数据类型.pptx

    首先,JAVA提供了四种整数类型:字节型(byte)、短整型(short)、整型(int)和长整型(long)。它们各自占据不同的内存空间,具有不同的取值范围。例如,byte占用1字节,取值范围是-128到127;short占用2字节,...

    Java基本数据类型---整数类型.pdf

    Java提供了四种不同的整数类型:byte、short、int和long,它们的主要区别在于存储的位数以及因此所能表示的数值范围。 首先,我们来看byte类型,它占用8位,也就是1个字节的存储空间。由于计算机的二进制表示,byte...

    java基本类型数据

    - `byte`:8位有符号整数,取值范围为-128到127。 - `short`:16位有符号整数,取值范围为-32768到32767。 - `int`:32位有符号整数,是最常用的基本整型,取值范围为-2^31到2^31-1。 - `long`:64位有符号整数...

    java基本类型[定义].pdf

    Java提供了九种基本类型,包括字符型(char),布尔型(boolean),以及五种数值类型(byte, short, int, long, float, double)。这些类型是Java语言预定义的,可以直接在代码中使用,无需像引用类型那样通过实例化类来...

Global site tag (gtag.js) - Google Analytics