`

java为什么没有无符号类型

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

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

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

不过guava是提供了UnsignedInts的。


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

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

相关推荐

    java数据类型转byte数组

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

    Java开发技术大全(500个源代码).

    constructNoPara.java 无参数的构造方法 constructWithPara.java 带参数的构造方法 declareDefault.java 缺省访问权限的使用 declarePrivate.java 私有访问权限的使用 declareProtected.java 保护访问权限的...

    PrimitiveCollections:支持无符号和可空类型的另一个Java原语集合

    Java原始集合This is nightly bleeding-edge release支持无符号和可空类型的另一个Java原语集合采纳了最好的主意即将到来的AdHoc协议解析器代码生成器将需要添加新的功能,即无符号和可为空的原始类型。首先,我对...

    JAVA基础之java的移位运算

    因为你知道Java 在对表达式求值时,将自动把这些类型扩大为 int 型,而且,表达式的值也是int 型。对byte 和short类型的值进行移位运算的结果是int 型,而且如果左移不超过31位,原来对应各位的值也不会丢弃。但是,...

    java基础入门教程

    ,不 同 的 用 户 也 就 可以 脱 离 Web浏 览器 来 运 行 Java应 用程 序 ,这 无 疑 是 很 受 广 大 用户 欢 迎 的 ,也 为 Java语 言 的 应 用 开 拓了极为 广 阔 的 前景 。 (当然 ,各 类 JavaOS之 间 的 兼 容 性 ...

    java cmpp2.0 3.0 无jar纯源码demo(含服务端测试工具)[20171205]

    java cmpp2.0 3.0 无jar纯源码demo(含服务端测试工具)[20171205] 找了挺多资料,CMPP的资源很多,但可以参考可用的不多, 特此开源cmpp的DEMO程序,无jar插件,纯源码实现。 语言为:java 工具为:Intellij IDEA ...

    21天学通Java-由浅入深

    58 3.7.2 “”:带符号左移运算符 58 3.7.3 “>>>”:无符号右移运算符 58 3.8 赋值运算符 59 3.8.1 一般赋值运算符 59 3.8.2 运算赋值运算符 59 3.9 运算符之间的优先级 60 3.10 综合练习 61 3.11 小结 62 3.12 ...

    java编程基础,应用与实例

    第1章 什么是Java程序设计语言 1 1.1 Java语言诞生背景 1 1.2 Java语言的特点 1 1.2.1 可移植性(universality) 1 1.2.2 安全性(security) 1 1.2.3 Java Virtual Machine(JVM) 2 1.2.4 面向对象的程序...

    java类文件结构(笔记).docx

    无符号数属于基本的数据类型,以u1、u2、u4、u8来分别代表1个字节、2个字节、4个字节和8个字节的无符号数,无符号数可以用来描述数字、索引引用、数量值,或者按照UTF-8编码构成字符串值。 表是由多个无符号数或其他...

    kotlin-bitflags:Kotlin-Bitflags是一个实用程序库,可简化在Kotlin中实现位标志的过程。 它与Kotlin无符号类型和Java Enumsets集成。 与Kotlin的二进制协议进行交互时,这特别有用

    它与Kotlin无符号类型和Java Enumsets集成。 与Kotlin的二进制协议进行交互时,这特别有用。 使用Kotlin-Bitflags 在将此模块添加到依赖项之后,您必须在您的类中实现相关的接口: enum class MessageFlag ( ...

    整理后java开发全套达内学习笔记(含练习)

    注意:默认类型转换(自动类型提升)会丢失精度,但只有三种情况: int>float; long>float; long>double. 看一下他们的有效位就明白。 二进制是无法精确的表示 0.1 的。 进行高精度运算可以用java.math包中...

    积分java源码-java-c-interpreter:java-c-解释器

    位无符号整数 长 64 位有符号整数 乌龙 64 位无符号整数 漂浮 定点数据类型(32 位) 双倍的 双精度数据类型(64 位) 支持的数学运算符 操作员 描述 sinh( 双 d ) 计算双曲正弦 罪(双 d ) 计算正弦 cosh( 双 d ) ...

    Java常见面试问题整理.docx

    3.本地方法栈:与虚拟机栈所发挥的作用是相似,它们之间的区别不过是虚拟机栈为虚拟机执行Java方法(也就是字节码)服务,而本地方法栈则为虚拟机使用到的Native方法服务。 异常:同上。 线程共享:异常:OOM 内存...

    java计算器程序.doc

    //需要解决的问题,数学的运算都有正负号的出现,在点击等号的时候就会有冲突,应该怎样解决,经验:双精度浮点型数据类型是会像后减一位。0.7会显示成0.69999999 public class app74 { static int i=0; static ...

    sjmp:安全的Java多精度库

    通过使用多种技术绕过Java缺少本机无符号整数类型的方法,可以将这些数组的元素解释为无符号整数并将其作为无符号整数进行操作。 这样的数组int[] x的值由下式给出: x[0] + x[1] * 2^32 + ... + x[x.length - 1]...

    一个java正则表达式工具类源代码.zip(内含Regexp.java文件)

    以前写了一个java的正规表达式的java工具类,分享一下,有用到的欢迎下载使用。 如果你有常用的定义好的,且测试通过的正规表达式,欢迎跟贴,也让我享用一下 . 类中用到了 jakarta-oro-2.0.jar 包,请大家自己在 ...

    C#的简单 基本语法

    2、在C#中的布尔类型为bool,而JAVA为boolean 3、C#有一个不安全模式,在此模式之下可以使用指针 4、有枚举类型 5、代理和索引器 6、运算符重载 7、没有throws关键字 下面开始C#之行。 在开始学习C#之前,...

    matlab转换java代码-int2bin-bin2int:将整数数据类型转换为二进制字符串,然后再返回到Matlab中

    输出的类别是支持二进制字符串中位数的最小无符号整数类别。 与Matlab的不同, bin2int支持最多64位的二进制字符串。 Andrew D. Horchler, horchler @ gmail。 com , 创建:1-21-16,修订:1.0,4-10-16 此版本已...

    Java开发实战1200例(第1卷).(清华出版.李钟尉.陈丹丹).part3

    本书是第II卷,以开发人员在项目开发中经常遇到的问题和必须掌握的技术为中心,介绍了应用Java进行桌面程序开发各个方面的知识和技巧,主要包括Java语法与面向对象技术、Java高级应用、窗体与控件应用、文件操作...

Global site tag (gtag.js) - Google Analytics