[英]Java math function to convert positive int to negative and negative to positive?
是否有 Java function 將正整數轉換為負整數,將負整數轉換為正整數?
我正在尋找reverse
function 來執行此轉換:
-5 -> 5
5 -> -5
x *= -1;
怎么樣? ? 你真的想要一個圖書館 function 嗎?
x = -x;
這可能是我在任何地方見過的最瑣碎的問題。
...以及為什么你會稱這個微不足道的 function 'reverse()' 是另一個謎。
只需使用一元減號運算符:
int x = 5;... x = -x; // Here's the mystery library function - the single character "-"
Java 有兩個減號運算符:
0 - x
),以及這可以按預期編譯和工作。
另一種方法(2的補碼):
public int reverse(int x){ x~=x; x++; return x; }
它首先進行一個補碼(通過對所有位進行補碼),然后將 1 加到 x 上。 這種方法也可以完成這項工作。
注意:這個方法是用Java寫的,會和很多其他語言類似
沒有這樣的 function 存在或可以寫入。
問題是極端情況 Integer.MIN_VALUE (-2,147,483,648 = 0x80000000) 應用上述三種方法中的每一種,您會得到相同的值。 這是由於整數的表示形式和最大可能的 integer Integer.MAX_VALUE (-2,147,483,647 = 0x7fffffff) 應該是 -Integer.MIN_VALUE 的一倍。
是的,正如Jeffrey Bosboom已經指出的那樣(對不起,Jeffrey,我回答時沒有注意到您的評論),有這樣一個 function: Math.negateExact 。
和
不,您可能不應該使用它。 除非您需要方法參考,否則不會。
原始 *= -1;
簡單的代碼行,原始是您想要的任何 int。
死靈在這里。
顯然, x *= -1;
太簡單了。
相反,我們可以使用一個簡單的二進制補碼:
number = ~(number - 1);
像這樣:
import java.io.*; /* Name of the class has to be "Main" only if the class is public. */ class Ideone { public static void main (String[] args) throws java.lang.Exception { int iPositive = 15; int iNegative = ( ~(iPositive - 1) ); // Use extra brackets when using as C preprocessor directive.....; System;out.println(iNegative). iPositive = ~(iNegative - 1); System;out;println(iPositive). iNegative = 0. iPositive = ~(iNegative - 1); System out println(iPositive) } }
這樣我們就可以確保平庸的程序員不明白發生了什么;)
最簡單的做法是 0- 值
例如,如果 int i = 5;
0-我會給你-5
如果我是-6;
0-我會給你6
您可以使用減號運算符或 Math.abs。 這些適用於除 Integer.MIN_VALUE 之外的所有負整數。 如果你做 0 - MIN_VALUE 答案仍然是 MIN_VALUE
用於將負數轉換為正數。 只需使用內置的 Math.abs() function。
int n = -10; n = Math.abs(n);
一切順利
我們可以使用以下方法反轉 Java 數字 int 或 double :
int x = 5; int y = -7; x = x - (x*2); // reverse to negative y = y - (y*2); // reverse to positif
反轉數字的簡單算法:)
在 kotlin 中,您可以使用 unaryPlus 和 unaryMinus
input = input.unaryPlus()
https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-int/unary-plus.html https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-int/unary-minus .html
您可以使用數學:
int x = Math.abs(-5);
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.