首页 > 编程语言 >java 怎么把负数变正数

java 怎么把负数变正数

时间:2024-04-12 17:56:15浏览次数:27  
标签:java 运算 -- 负数 运算符 num 正数

java 怎么把负数变正数

Java 中将负数变为正数可以通过以下几种方式实现:使用绝对值函数、使用三目运算符、使用位运算或者使用移位运算。下面将详细介绍这些方法。

1. 使用绝对值函数

Java 提供了 Math 类中的 abs() 方法,可以返回一个数的绝对值。使用该方法可以将负数转换为正数。

int num = -10;
int absNum = Math.abs(num);
System.out.println(absNum); // 输出:10
  • 1.
  • 2.
  • 3.

2. 使用三目运算符

三目运算符是一种简洁的方式来实现条件判断,可以用来将负数转换为正数。

int num = -10;
int positiveNum = num < 0 ? -num : num;
System.out.println(positiveNum); // 输出:10
  • 1.
  • 2.
  • 3.

3. 使用位运算

在 Java 中,负数的二进制表示是通过补码实现的。可以通过将负数与一个特定的数进行位与运算,来将其转换为正数。

int num = -10;
int positiveNum = num & 0x7FFFFFFF;
System.out.println(positiveNum); // 输出:10
  • 1.
  • 2.
  • 3.

4. 使用移位运算

移位运算是一种对二进制数据进行位移操作的方法。可以通过右移运算将负数转换为正数。

int num = -10;
int positiveNum = num >>> 1;
System.out.println(positiveNum); // 输出:2147483643
  • 1.
  • 2.
  • 3.

以上四种方法都可以将负数转换为正数,具体选择哪一种取决于实际需求和对代码的要求。

下面是将负数转换为正数的流程图:

flowchart TD
    A[开始] --> B[输入一个负数]
    B --> C{选择转换方式}
    C --> |使用绝对值函数| D[调用 Math.abs() 方法]
    C --> |使用三目运算符| E[使用三目运算符进行判断]
    C --> |使用位运算| F[使用位与运算符将负数与特定数进行运算]
    C --> |使用移位运算| G[使用右移运算符将负数进行位移]
    D --> H[输出转换后的正数]
    E --> H
    F --> H
    G --> H
    H --> I[结束]

下面是将负数转换为正数的序列图:

Java程序用户Java程序用户输入一个负数对负数进行转换输出转换后的正数

综上所述,通过绝对值函数、三目运算符、位运算或移位运算都可以将负数转换为正数。根据实际需求选择合适的方法,并根据代码的规范性和性能要求进行选择。

原文链接:https://blog.51cto.com/u_16175466/9482887

标签:java,运算,--,负数,运算符,num,正数
From: https://www.cnblogs.com/sunny3158/p/18131819

相关文章

  • java中cron表达式 每10分钟执行一次
    在Java中,可以使用Quartz框架来定义和调度任务,包括使用Cron表达式来定义任务的执行时间。下面是一个使用Quartz框架实现每10分钟执行一次任务的示例:添加Quartz依赖在Maven项目中,添加以下依赖到pom.xml文件中:<dependency><groupId>org.quartz-scheduler</groupId><arti......
  • bug记录:java.lang.UnsupportedOperationException: null
    java.lang.UnsupportedOperationException:null这个错一般是因为不支持的操作导致,即对象不支持某方法,显示抛出此异常。举个例子:Arrays.asList这个方法返回Arrays内部类ArrayList而不是java.util.ArrayList,而Arrays的内部类ArrayList是继承了AbstractList,AbstractList中的add、r......
  • Java策略模式实践
    1什么是策略模式策略模式(StrategyPattern):一个类的行为或其算法可以在运行时更改。这种类型的设计模式属于行为型模式。在策略模式定义了一系列算法或策略,并将每个算法封装在独立的类中,使得它们可以互相替换。通过使用策略模式,可以在运行时根据需要选择不同的算法,而不需要修改......
  • java + geotools 读写shp时,中文属性乱码问题
    创建时要注意 :  newDataStore.setCharset(Charset.forName("GBK"));代码如下:FilenewFile=newFile(filepath);Map<String,Serializable>params=newHashMap<>();params.put("url",newFile.toURI().toURL());params.put("createspati......
  • Java stream sorted使用 Comparator 进行多字段排序
    摘要:介绍使用JavaStream流排序器Comparator对List集合进行多字段排序的方法,包括复杂实体对象多字段升降序混合排序方法。综述​ Java8的Stream使用了函数式编程模式,人如其名,它可以被用来对集合或数组进行链状流式的排序、过滤和统计等操作,从而让我们更方便的对集合或数组......
  • Java 中文官方教程 2022 版(四十一)
    原文:docs.oracle.com/javase/tutorial/reallybigindex.html错误处理原文:docs.oracle.com/javase/tutorial/jaxp/limits/error.html建议应用程序在设置新属性时捕获org.xml.sax.SAXNotRecognizedException异常,以便应用程序在不支持这些属性的旧版本上正常工作。例如,可下载的......
  • Java 中文官方教程 2022 版(四十二)
    原文:docs.oracle.com/javase/tutorial/reallybigindex.html设置策略文件以授予所需的权限。原文:docs.oracle.com/javase/tutorial/security/toolsign/rstep3.html接下来,您将使用策略工具创建一个名为exampleraypolicy的策略文件,并在其中授予来自已签名JAR文件的代码权限......
  • Java 中文官方教程 2022 版(四十四)
    原文:docs.oracle.com/javase/tutorial/reallybigindex.html调用方法原文:docs.oracle.com/javase/tutorial/reflect/member/methodInvocation.html反射提供了一种在类上调用方法的方式。通常,只有在非反射代码中无法将类的实例强制转换为所需类型时才需要这样做。方法是使用j......
  • Java 中文官方教程 2022 版(四十五)
    原文:docs.oracle.com/javase/tutorial/reallybigindex.html教程:自定义网络原文:docs.oracle.com/javase/tutorial/networking/index.htmlJava平台备受推崇,部分原因是其适用于编写使用和与互联网资源以及万维网进行交互的程序。事实上,兼容Java的浏览器极大地利用了Java......
  • Java 中文官方教程 2022 版(四十六)
    原文:docs.oracle.com/javase/tutorial/reallybigindex.html定义简单的通用类型原文:docs.oracle.com/javase/tutorial/extra/generics/simple.html这里是包java.util中接口List和Iterator的定义的一个小节选:publicinterfaceList<E>{voidadd(Ex);Iterator<E......