`
winstonczc
  • 浏览: 4303 次
  • 性别: Icon_minigender_1
  • 来自: 广州
最近访客 更多访客>>
文章分类
社区版块
存档分类
最新评论

java无符号类型比较解决方案

阅读更多
因为java没有unsigned类型,当需要以unsigned类型比较整数时,需要考虑符号位

//将两个整数当成无符号整数作比较
public static int compareUnsignedInt(int a,int b){
if(a < 0 && b >= 0){//a为负数,b为正数或0
return 1;
}
if(a >= 0 && b < 0){//a为正数或0,b为负数
return -1;
}
if((a < 0 && b < 0) ||
(a >= 0 && b >= 0)){
a = a & 0x7FFFFFFF;
b = b & 0x7FFFFFFF;
}
if(a > b){
return 1;
}else if(a == b){
return 0;
}else{
return -1;
}
}
分享到:
评论

相关推荐

    无符号整数表达式的判定

    无符号整数表达式的判定是计算机科学和编程领域的一个基本问题,其解决方案不仅限于上述代码片段。通过对给定代码的深入分析,我们不仅可以理解其实现细节,还可以从中学习到处理字符串、数字转换和异常处理的实用...

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

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

    CoreJava全套详细笔记资料.pdf

    * 移位运算符包括左移、右移和无符号右移,用于将数字移动到指定的位置。 * 位运算符包括按位与、按位或、按位异或和按位非,用于对数字进行二进制操作。 * 逻辑运算符包括逻辑与、逻辑或和逻辑非,用于对布尔值进行...

    C++与java比较区分

    在操作符方面,Java引入了右移位运算符“&gt;&gt;&gt;”,用于无符号移位,而“&gt;&gt;”则是有符号移位。数组处理在Java中也有独特之处,具有只读的length属性,超出数组边界会抛出异常,且数组分配是基于堆的。 对象的创建在...

    java全集.pdf JAVA全集

    Java支持多种数据类型,包括: - 基本类型:如`int`, `double`, `char`等。 - 引用类型:如`String`, `Array`, `Class`等。 **3.5 命名规则** - 类名首字母大写。 - 变量名和方法名首字母小写。 - 常量名全部大写...

    java基础易忘

    - **无符号类型**: Java 不支持无符号类型,所有整型都是有符号的。 - **字符操作**: 提供了多种工具类如 `Character` 来操作字符。 #### 19. 浮点数精度问题 - **精度问题**: 浮点数计算可能会遇到精度丢失的问题...

    在Java中实现Oracle变量的绑定方法 .doc

    - **类型安全**:Java类型和SQL类型之间的转换由JDBC驱动处理,避免了手动转换的错误。 总结起来,在Java中实现Oracle变量绑定的关键在于使用PreparedStatement,并通过其提供的`setXXX()`方法设置参数。这样做不仅...

    解决Java中的强制类型转换和二进制表示问题

    总之,理解Java中的强制类型转换和二进制表示对于编写高效且无错误的代码至关重要。在进行类型转换时,必须考虑到数据的位宽和二进制表示,尤其是涉及有符号整数时。对于负数,掌握补码、反码和原码的概念可以帮助...

    java常见错误大全

    解决方案:检查代码中是否正确地声明了变量和方法,确保标识符名称符合 Java 语言的规则。 2. 无数据Found 错误可能是由于在数据库中没有找到对应的数据,或者是由于查询语句错误。 解决方案:检查数据库中的数据...

    java.lang.NumberFormatException For inputstring 4294967295处理方法

    首先,我们需要理解 `4294967295` 是一个32位无符号整数的最大值。在Java中,`Integer.parseInt()` 和 `Integer.valueOf()` 方法默认将字符串转换为32位有符号整数。这意味着它们能够处理的范围是 `-2^31` 到 `2^31 ...

    8.集成java1

    编译器为每个单例对象创建一个以美元符号$命名的Java类,并包含单例对象的所有方法和字段。静态字段MODULE$保存了运行时的单例实例。对于没有对应类的独立单例对象,编译器会创建一个同名的Java类,其中包含静态方法...

    黑马程序员入学Java精华总结

    - 构造方法用于初始化对象,其名称与类名相同且无返回类型。 4. **static关键字** - static修饰的成员变量或方法属于类本身,而非对象实例。 5. **匿名对象** - 直接使用new关键字创建对象而不赋予引用变量。 ...

    java简易代码

    Java提供位操作符,如按位与(&)、按位或(|)、按位异或(^)、按位非(~)以及左移()、右移(&gt;&gt;)、无符号右移(&gt;&gt;&gt;)。这些操作在处理二进制数据或优化性能时非常有用。 7. **测试类(Test.java)** 在Java...

    解决java压缩zip文件时的中文乱码问题(包含jar包和工具类)

    解决java压缩zip文件时的中文乱码问题 实现:java压缩文件成zip实现无乱码。 包括:写好的工具类与jar包。 使用方法:导入ant.jar包,调用CompressExcelOperate中的方法,即可实现压缩文件,并保证没有中文乱码...

    Java编程规范 The Java Language Specification

    - 抽象类(`abstract class`)可以包含抽象方法(无实现的方法)和具体方法,提供部分实现。 7. **集合框架**: - Java的集合框架包括`List`, `Set`, `Map`接口,以及对应的实现类如`ArrayList`, `HashSet`, `...

    ujint:(废弃)Java 编译器插件使用无符号整数简化编码

    总的来说,ujint插件虽然已经废弃,但它提供了一种解决Java中无符号整数问题的方法,并展示了编译器插件技术的应用。对于Java开发者,尤其是对编译器扩展有兴趣的开发者,ujint的源码和设计理念仍然是一个宝贵的教育...

    java2实用教程电子教案

    - **位运算符**:按位与(`&`)、按位或(`|`)、按位异或(`^`)、按位取反(`~`)、左移(`)、右移(`&gt;&gt;`)、无符号右移(`&gt;&gt;&gt;`)。 - **赋值运算符**:赋值(`=`)及其组合形式(如`+=`、`-=`等)。 ##### 3.2 语句 - **控制...

    java与C#区别详细介绍1.docx

    - Java只有带符号的整数类型,而C#支持无符号整数。 - C#提供了高精度浮点类型(128位的Decimal类型),可以处理28位小数,而Java没有这样的类型。 - 字符串在Java和C#中都是不可变的引用类型,但在C#中,字符串...

Global site tag (gtag.js) - Google Analytics