`

为什么byte取值是-128到127

    博客分类:
  • java
 
阅读更多

建议你baidu下“补码”,就会比较清楚了,第一位是符号位。
00000000 => 0
11111111 => -1
10000000 => -128
01111111 => 127


◎ 负数的补码
  负数的补码是对其原码逐位取反,但符号位除外;然后整个数加1。
  同一个数字在不同的补码表示形式里头,是不同的。比方说-15的补码,在8位2进制里头是11110001,然而在16位2进制补码表示的情况下,就成了1111111111110001。在这篇补码概述里头涉及的补码转换默认了把一个数转换成8位2进制的补码形式,每一种补码表示形式都只能表示有限的数字。
  【例2】求-7的补码。
  因为给定数是负数,则符号位为“1”。
  后七位:-7的原码(10000111)→按位取反(11111000)(负数符号位不变)→加1(11111001)
  所以-7的补码是11111001。
  已知一个数的补码,求原码的操作分两种情况:
  (1)如果补码的符号位为“0”,表示是一个正数,其原码就是补码。
  (2)如果补码的符号位为“1”,表示是一个负数,那么求给定的这个补码的补码就是要求的原码。
  再举一个例子:求-64的补码
  +64:01000000
  11000000

分享到:
评论
1 楼 Tough小白 2016-11-30  
11111111 11111111 11111111 11111111  补码
11111111 11111111 11111111 11111110  反码
11111111 11111111 11111111 10000001  原码
                                 -1  最大负数
11111111 11111111 11111111 10000000  补码
11111111 11111111 11111111 01111111  反码
11111111 11111111 11111111 10000000  原码
                               -128  最小负数
00000000 00000000 00000000 00000000  0
00000000 00000000 00000000 00000001  正数原反补都一样
                                  1  最小正数
00000000 00000000 00000000 01111111  正数原反补都一样
                                127  最大正数
Java语言默认数据类型是int,四个字节,byte只有一个字节,应该先在4个字节下取到一个字节的所有数,再确定byte类型一个字节的取值范围。

相关推荐

    【IT十八掌徐培成】Java基础第04天-01.作业讲解-byte范围变换-二进制格式输出-三维数组横向打印.zip

    在Java中,`byte`是基本数据类型之一,它的取值范围是-128到127。在处理二进制数据时,我们经常需要将`byte`类型的数值转换为其他数据类型,如`int`、`short`或`char`。理解这些类型之间的转换规则至关重要,避免...

    byte-TO-WROD.zip_byte转换成word

    1. **byte**: 在C++中,`byte`通常等同于`unsigned char`,它是一个无符号的8位整数,取值范围是0到255。 2. **WORD**: 这是Windows API中的一个定义,通常在`windef.h`头文件中声明,它是一个无符号的16位整数,...

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

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

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

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

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

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

    【IT十八掌徐培成】Java基础第02天-02.字节-负数表示-补码-128计算.zip

    在Java中,字节类型用`byte`关键字表示,其取值范围是-128到127。 接下来,我们探讨负数的表示方式。在二进制系统中,负数的表示方法不同于十进制。我们使用的是“补码”表示法。补码是一种在二进制系统中表示负数...

    关于各数据类型取值范围

    * sbyte 型:有符号 8 位整数,取值范围在 -128~127 之间。 * byte 型:无符号 8 位整数,取值范围在 0~255 之间。 * short 型:有符号 16 位整数,取值范围在 -32,768~32,767 之间。 * ushort 型:无符号 16 位整数...

    java面试题-附答案

    - byte:1 字节,取值范围 -128 到 127,默认值 0,包装类 Byte。 - short:2 字节,取值范围 -32768 到 32767,默认值 0,包装类 Short。 - int:4 字节,取值范围 -2^31 到 2^31-1,默认值 0,包装类 Integer。...

    Java逻辑基础题1-数据类型和运算符-答案.docx

    * byte:整数类型,占用 1 字节,取值范围 -128 到 127。 * short:整数类型,占用 2 字节,取值范围 -32768 到 32767。 * int:整数类型,占用 4 字节,取值范围 -2147483648 到 2147483647。 * long:整数类型,...

    Java语法大全.pdf

    - byte: 8位,取值范围-128到127 - short: 16位,取值范围-32768到32767 - int: 32位,取值范围-***到*** - long: 64位,取值范围-***到***,使用后缀L或l表示 2. 浮点型: - float: 32位,取值范围1.4E-45到3...

    标识符----关键字---数据类型.rar

    - byte:占用1字节,取值范围-128到127。 - short:占用2字节,取值范围-32768到32767。 - int:占用4字节,取值范围-2^31到2^31-1。 - long:占用8字节,取值范围-2^63到2^63-1。 - float:占用4字节,单精度...

    Java 基础.pdf_电子版pdf版

    - 字节型(byte):8位,取值范围-128到127。 - 字符型(char):16位,使用Unicode编码,可以表示各种字符。 - 短整型(short):16位,取值范围-32768到32767。 - 整型(int):32位,通常用于计算,取值范围-2^31...

    Java认证模拟试题及分析.doc

    - 1) -128 to 127 // 正确,这是 byte 类型的取值范围 - 2) (-2 power 8)-1 to 2 power 8 // 错误,范围应是 -128 到 127 - 3) -255 to 256 // 错误,超出 byte 范围 - 4) depends on the particular ...

    Java数据与数据运算PPT教案学习.pptx

    - `byte`: 1 字节,8 位,取值范围 -128 到 127。 - `short`: 2 字节,16 位,取值范围 -32768 到 32767。 - `int`: 4 字节,32 位,取值范围 -2^31 到 2^31-1。 - `long`: 8 字节,64 位,取值范围 -2^63 到 2^...

    java基本类型数据

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

    1-PDF417编码演示程序

    例如20 byte左右数据量,取值范围可设3-5; 纠错等级 条码污损后的纠错能力,取值范围0-7,建议取1-3; 长宽比例 条码单位长度和宽度比例,取值范围1-5; 1----紧凑型条码,生成条码图片容量最小,适合配合...

    java基础测试题java基础测试题.doc

    - byte类型的取值范围是-128到127,因此a) 是正确的。 4. 命令行参数: - 当输入命令行`java myprog good morning`,由于argv[2]未定义(argv长度为1),程序会抛出ArrayIndexOutOfBoundsException,d) 是正确的...

    ARM-ContexM C语言

    - `int8_t`, `uint8_t`:8位有符号和无符号整型,取值范围-128-127或0-255。 - `short int`, `int16_t`, `uint16_t`:16位有符号和无符号整型,取值范围-32768-32767或0-65535。 - `int`, `int32_t`, `uint32_t`:32...

    VS2010轻松学习C#-从零到深入-天轰穿.NET4趣味编程视频教程_第05讲_预定义数据类型

    - `sbyte`: 有符号8位整数,取值范围为-128到127。 - `short`: 有符号16位整数,取值范围为-32768到32767。 - `ushort`: 无符号16位整数,取值范围为0到65535。 - `int`: 有符号32位整数,取值范围为-2^31到2^31...

    shujuleixing.rar_javashujuleixing

    - `byte`:占用1个字节(8位),取值范围-128到127。 - `short`:占用2个字节(16位),取值范围-32,768到32,767。 - `int`:占用4个字节(32位),默认整型数据类型,取值范围-2^31到2^31-1。 - `long`:占用8...

Global site tag (gtag.js) - Google Analytics