❶ java怎麼用二進製表示負數
將負數轉化成正數的方法:1、對已知是負數的數值轉化方法:假設a為已知負數,則intb=-a;則b為所需正數;2、對不確定正負性的數值轉化方法:假設有a,正負不確定,則可用:intb=Math.abs(a);取絕對值的方式來將數值轉化成正數。
❷ 為什麼java中文轉byte出現負數
GBK採用雙位元組8位表示,總體編碼范圍為 8140 -- FEFE,首位元組在 81 -- FE 之間,尾位元組在 40 -- FE 之間。
ASCII是7位編碼,只使用前7位,第8位補0,所以轉換成整數始終為正數,而GBK是8位編碼,也就是說一個位元組中的第8位可以為1,如1010 1101,而將其轉換成byte類型時,byte值為10101101,以補碼存儲,第8位被當成符號位,當然是負數了,值為:-83。
「何」字的GBK編碼是:BA CE(1011 1010 1100 1110),兩個位元組第8位都為1,對byte類型來說,都被理解為最高位符號位。這樣值就變成-70和-50了。
❸ java 時間(Date)相減為何出現負數
你的問題其實跟日期沒關系,你的問題其實可以描述為下面這樣:
long diff = 2160000000;
int result = (int)(diff)/1000/60/60/24;
System.out.println(result);
為什麼經過計算後result結果為負數,原因是因為在java語言中int類型的取值范圍是:-2147483648~2147483647,而你給的long型的diff超出了2147483647的最大值,導致最高位符號位變成了1,於是經過強制類型轉換(int)(diff)之後,已經就是一個負數了,所以除法運算的結果也就成了負數。而當diff等於2073600000的時候,這個值並沒有超出int類型的范圍,所以計算出的結果是正數
❹ java中怎麼給一個整數賦值為負數
int s = -(h/w); 你這個的話,定義的是整數,如何h比w小的話,s就是一個0。如果你需要是看到數據的話,你定義float s = -(h/w)就可以了。
❺ 這個java為什麼算出來是負數
因為這個數太大了,超過了int變數的表示範圍,越界了
❻ java怎麼讓一個正數變成負數
要將負數轉換為正數(這稱為絕對值),請使用Math.abs()。 此Math.abs()方法的工作方式如下:「number = (number < 0 ? -number : number);」。
看一個完整的例子:
packagecom.mkyong;
publicclassapp{
publicstaticvoidmain(String[]args){
inttotal=1+1+1+1+(-1);
//output 3
System.out.print1n("Total:」+total);
inttotal2=1+1+1+1+Math.abs(-1);
//output5
System.out.print1n("Total2(absolutevalue):」+total2);
}
}
輸出量
Total:3
Total2(absolutevalue):5
在這種情況下,Math.abs(-1)會將負數1轉換為正數1。
❼ Java二進制正數強制轉換byte後變負數的問題。
0b11101001
正好8位一個位元組,第一個位是符號位。
整型數在計算機中用補碼存儲的。
所以由補碼11101001求原碼
(負數求原碼除了符號位,其他位依次取反最後加一,或者先減一再取反,結果一樣的)
得到原碼10010111 就是 -23。
❽ 為啥java輸出大數字成負數了
是不是運算結果長度超出了LONG所能表示的范圍,你換個小點的數試試。
❾ JAVA中如何使一個數組中的比較大的正數顯示成負數
遍歷這個數組,找到那個比較大正數的下標,然後顯示的時候加個負號。
❿ java如何把 int型負數轉換成 int型正數
將負數轉化成正數的方法:
1、對已知是負數的數值轉化方法:假設a為已知負數,則intb=-a;則b為所需正數;
2、對不確定正負性的數值轉化方法:假設有a,正負不確定,則可用:intb=Math.abs(a);取絕對值的方式來將數值轉化成正數。
(10)java變負數擴展閱讀:
整數(int類型的常量)有幾種書寫形式,程序中的整數一般採用十進制寫法。用十進制方式寫出的一個整數就是普通數字字元組成的一個連續序列,其中不能有空格、換行或其他字元。C語言規定十進製表示的數字不能是0,除非要寫的整數本身就是0。下面是一些整數的列子。