本文目錄一覽:
- 1、java裡面二進制怎麼表示
- 2、java的數字二進制輸出
- 3、java中二進制怎麼表示?
- 4、Java里,,什麼是二進制? 什麼是base64?他們有什麼區別?
- 5、java中怎麼表示二進的整數int a=xxxx;
- 6、java中如何將十進制數字轉化成二進制?
java裡面二進制怎麼表示
java不顯示地支持二進制數字,因為二進制的數字比較長,你可以考慮使用八進制或十六進制,這兩種轉換成二進制都比較方便.可以用八進制用0開頭,比如:012就是十進制的10十六進制用0x開頭,比如:0x12就是十進制的18
java的數字二進制輸出
首先,java里int是有32位2進制數組成的
我們一般賦值
int
i
=
1;
這個是賦值10進制的數
賦值
2進制要
int
i
=
01;(前面加個0,就表示是2進制數)
賦值16進制(常用)
int
i
=
0x00000001;
(0x表示為16進制數)
3種的值都是1.
要用2進制輸出就是Integer.toBinaryString(i)
拓展:
因為計算機處理位運算速度是非常快的(應該是最快的運算)
所以很多時候,如果有一堆boolean變量需要表示時,
一般只用1個int的數表示,如:
int
i
=
0x0000000f;//表示後4位為1
int
m
=
(i
2)
1;
//
其中m就是表示某一位的值,2表示右邊開始數第2位(當然是從第0位開始算的)
這樣就能取具體每一位的值
這種方法在很吃代碼效率的程序中經常遇到
全手打,望支持
java中二進制怎麼表示?
二進制是計算技術中廣泛採用的一種數制。二進制數據是用0和1兩個數碼來表示的數。它的基數為2,進位規則是“逢二進一”,借位規則是“借一當二”,由18世紀德國數理哲學大師萊布尼茲發現。當前的計算機系統使用的基本上是二進制系統,數據在計算機中主要是以補碼的形式存儲的。計算機中的二進制則是一個非常微小的開關,用“開”來表示1,“關”來表示0。
1、Java中定義兩個數,然後分別打印出它們的二進制表示:
System.out.println(“Java二進制7: “+Integer.toBinaryString(7));
System.out.println(“Java二進制-7: “+Integer.toBinaryString(-7));
輸出:
Java二進制7:
111
Java二進制-7:
11111111111111111111111111111001
可以看到Java中對於數的表示屬於有符號的,那麼這個是怎麼來的?
7好辦,直接是111
-7轉化二進制的過程:
(1)把-7轉化成7,二進制是
111
(2)Java中對於不滿32位的int二進制自動補齊,所以變成了
(29個0)111
(3)然後取反
(29個1)000
(4)然後加1
(29個1)001
這就是-7的整個轉化過程,那麼現在有一個問題,如果有一個文本文件,每一行有八位二進制,表示的範圍是(0~255),也就是用一個字節表示的無符號整數,如果現在要把這些二進制轉化成整數存到文件里應該怎麼做?
文件:
line1
11111110
(254)
line2
00000000
(0)
假設用Java讀進了第一行,那麼直接打印出來的值是-2,不符合要求,這時讓-2變254有兩種辦法:
(1)用Java自帶的方法,Byte.toUnsignedInt((byte)
-2)(ps.-2的二進制表示就是line1),這樣打印出來的就是254了
System.out.println(Byte.toUnsignedInt((byte) -2));
輸出:254
第二種方法的原理:
Java中-2的二進制表示:11111111111111111111111111111110(這個二進制的後八位就是line1,可以直接打印的話Java把其當做了負數
-2)
Java中255的二進制表示:00000000000000000000000011111111(24個‘0’,8個‘1’)
做與後變為:00000000000000000000000011111110
這樣做與後表示的數就是正數了
254。可以想一下,假設每一行用2個字節表示一個無符號數,那麼可以把每一行變成正整數用方法2怎麼做?
2.Java中的和
”
算術右移,向右移左邊補符號位
”
邏輯右移,向右移左邊補0
System.out.println(“Java二進制-7: “+Integer.toBinaryString(-7));
System.out.println(“-72: “+Integer.toBinaryString(-72));
System.out.println(“-72: “+Integer.toBinaryString(-72));輸出:
Java二進制-7: 11111111111111111111111111111001
-72: 11111111111111111111111111111110
-72: 111111111111111111111111111110 //正常應該這樣(00)111111111111111111111111111110左邊的兩個0不顯示
Java里,,什麼是二進制? 什麼是base64?他們有什麼區別?
二進制就是逢二進一,而我們習慣的是十進制,就是逢十進一,其實就是平時計數的時候用的符號不一樣,十進制是(0~9)10個符號,而二進制只有0和1兩個,因為當超過1的時候就會產生進位,比如二進制加法1+1=10(注意不要和十進制的十混淆,這個是二進制一零,等於十進制的二)。
至於base64就是一套加密算法唄,有點類似於數學的某個公式,你把你的數字輸入到這個公式就會產生另外一個數字,加密就是把你的信息按照一定的方法轉換成別的信息,如果不知道解密方法,是無法理解信息的內容的,大概就是這樣的意思。還不理解請追問
java中怎麼表示二進的整數int a=xxxx;
int x = 123;
String c = Integer.toBinaryString(x);
System.out.println(c);
int d = Integer.parseInt(c, 2);
System.out.println(d);
運行一下上面的代碼
java用String表示二進制,使用toBinaryString將int轉為二進制串
使用parseInt將二進制串轉為int
java中如何將十進制數字轉化成二進制?
如果表達小於2^31-1的正數代碼如下:
public void binaryToDecimal(int n){
int t = 0; //用來記錄位數
int bin = 0; //用來記錄最後的二進制數
int r = 0; //用來存儲餘數
while(n != 0){
r = n % 2;
n = n / 2;
bin += r * Math().pow(10,t);
t++;
}
System.out.println(bin);
}
使用字符串的拼接(+)來實現大於2^31-1的數,代碼如下:
public void binaryToDecimal(int n){
String str = “”;
while(n!=0){
str = n%2+str;
n = n/2;
}
System.out.println(str);
}
可以右移後再與0x01進行運算 得到第一位的數字判斷判斷它的第幾位上是0,第幾位上是1,代碼如下:
class ByteMove
{
public static void main(String[] args)
{
int i = 7;
move(i);
}
static void move(int num){
for(int i= 0;i6;i++){
System.out.println(“第”+(i+1)+”位:” + (num i 0x01));
}
}
}
擴展資料:
在windows下編譯java文件、執行:
1、先創建一個txt,更改為test.java。
2、編寫代碼,為輸出為holloword。
3、找到cmd,並進行打開cmd。
4、編譯java文件,輸入命令為javac test.java。
5、如果沒有報錯,查看當前目錄下是否有class文件產生。
6、執行class文件,在命令輸入java test,輸出為holloword。
原創文章,作者:小藍,如若轉載,請註明出處:https://www.506064.com/zh-hant/n/257211.html