`

java为什么没有无符号类型

    博客分类:
 
阅读更多
一次对 James Gosling 的采访说到:
你去问 C 语言开发人员关于无符号的问题,你很快就会发现没有几个 C 语言开发人员真正理解无符号类型到底发生了些什么,什么是无符号运算。这些事情让 C 语言变得复杂。我觉得 Java 语言是非常简单的。

在之前的Oak规范也有说:
“8 比特,16 比特,32 比特,64 比特的,这 4 种不同宽度的整数类型都是有符号的,除非在前面加上 unsigned 修饰符”。
在侧栏中又说:“无符号类型尚未实现;可能永远也不会实现了。”

看来是为了追求简单,是故意不实现的。

不过guava是提供了UnsignedInts的。


之前在项目中玩家的战斗力快要超过int的最大值,曾经想过用long去解决,但是前端是不支持long的,用double吗,之前的约定是用整数计算的,要处理。

其实现在看来无符号的整数也是一种解决方案。
1
0
分享到:
评论

相关推荐

    MySql于Java数据类型对应列表

    UNSIGNED 表示该整数为无符号类型。在Java中,该类型被映射为 `Long` 类型。 ##### 6. TINYINT (小整数) **显示长度:** 3 **数据库类型:** TINYINT UNSIGNED **JAVA类型:** `java.lang.Integer` **JDBC类型:** ...

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

    * byte:C#中的 byte 类型对应Java中的 byte 类型,都是无符号整数,取值范围为 0 到 255。 * short:C#中的 short 类型对应Java中的 short 类型,都是有符号整数,取值范围为 -32768 到 32767。 * int:C#中的 int ...

    无符号整数表达式的判定

    无符号整数(Unsigned Integer)指的是在二进制表示下没有符号位的整数类型,它只能表示非负数值,范围从0到最大值,这通常取决于其位数。例如,一个8位无符号整数可以表示从0到255的数值。 本文将深入解析由给定...

    java数据类型转byte数组

    ip地址转4字节byte,char转2字节byte,byte数组转char,int整数转换为4字节的byte数组,byte数组转换为int整数,double类型转8字节数组,8位数组转...byte数组转换为无符号short整数,byte数组转换为无符号short整数

    无符号的识别 编译原理

    编译器在解析源代码时,必须能够准确地识别出无符号数,以便正确地进行类型检查、计算以及生成相应的机器码。 编译原理实验通常包括以下几个步骤: 1. **词法分析**:这是编译过程的第一步,它将源代码分解成一个...

    《编译原理》实验 识别无符号数的词法分析器设计实现

    实验旨在让学生掌握词法分析的基本方法,通过对程序设计语言源代码的扫描,将源代码分解为各类单词,如无符号数、运算符等。实验要求识别的单词包括无符号数(如1.5E+2)、加号(+)、减号(-)、乘号(*)、除号(/...

    有符号数与无符号数的探讨

    在汇编语言中,声明变量时,实际上并没有“signed”(有符号)与“unsigned”(无符号)的区别。汇编器会将所有整数统一按照有符号数的标准,转化为补码形式存储于计算机中。这意味着,无论是正数还是负数,亦或是...

    Java 基本语法(三)——运算符和类型转换

    注意,在Java中没有无符号类型,因此`是唯一的左移运算符。 ##### 赋值运算符 除了基本的赋值运算符`=`外,Java还支持复合赋值运算符,如`+=`, `-=`, `*=`, `/=`, `&=`, `|=`, `^=`, `, `>>=` 和 `>>>=`。这些...

    java变量数据类型运算符

    位运算符操作变量的二进制表示,如按位与、按位或、按位异或、按位取反、左移、右移和无符号右移。 5. **赋值运算符**:=、+=、-=、*=、/=、%=。赋值运算符用于将右边的值赋给左边的变量。复合赋值运算符则结合了...

    ActionScript3类型与java数据类型对应表.rar

    - AS3中的基本数据类型包括Number(浮点数)、int(整数)、uint(无符号整数)、String(字符串)、Boolean(布尔值)、Object(对象)、Null和Undefined。 - Java的基本数据类型分为数值类型、字符型和布尔型:...

    JAVA数据类型

    Java是一种广泛使用的面向对象的编程语言,其语法严谨,数据...总之,理解Java的数据类型及其转换对于编写高效、无错误的代码至关重要。正确选择和使用数据类型可以优化内存使用,提高程序性能,并确保代码的正确性。

    java替换字符串中的符号

    本文将深入探讨如何在Java中替换字符串中的特定符号,并解析代码示例,以便更好地理解其工作原理。 ### Java中替换字符串中的符号 在Java中,`String`类提供了多种方法来操作字符串,包括查找、替换、分割等。其中...

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

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

    Java 无符号右移与右移运算符的使用介绍

    "Java 无符号右移与右移运算符的使用介绍" Java 无符号右移与右移运算符是 Java 编程语言中两个重要的操作符,它们在位运算中扮演着关键的角色。理解这两个操作符的使用方法和区别对于 Java 开发者来说是非常重要的...

    Java期末复习资料_第2章_基本数据类型与数组.pdf

    其中,byte和short类型的变量存储的数据有负数和正数,Java没有无符号的byte和short类型。int类型是最常用的整型,占用4个字节,而long类型占用8个字节,通常在需要表示更大范围的整数时使用,如long型常量后缀为L。...

    AIDL传递基础数据类型

    2. `byte`:8位无符号整数,范围0到255。 3. `char`:16位Unicode字符。 4. `short`:16位有符号整数,范围-32768到32767。 5. `int`:32位有符号整数,范围-2^31到2^31-1。 6. `long`:64位有符号整数,范围-2^63到...

    [推荐]JAVA第二章变量数据类型和运算符

    还有位运算符,如按位与(`&`)、按位或(`|`)、按位异或(`^`)、左移(`)、右移(`>>`)和无符号右移(`>>>`),这些在处理二进制数据时非常有用。 理解了变量和运算符后,我们来看如何在Java中进行表达式和...

    2-java语言实验(数据类型_运算符).docx

    * char:16位无符号字符。 * boolean:布尔类型。 在实验中,我们可以看到数据类型的分类和转换,例如float a = 3.0F,b;b = a / 0; 中的float类型和double类型。 三、运算符 Java语言中有多种运算符,包括: * ...

    JAVA【第3章:Java基础程序设计】_Java数据类型

    这些类型用于存储无符号整数。 - 浮点型:Java有两种浮点类型,float(4字节,单精度,大约7位小数精度)和double(8字节,双精度,大约15位小数精度)。用于处理浮点数值,如小数和分数。 - 字符型:char(2字节...

Global site tag (gtag.js) - Google Analytics