1. 用java寫一個 十進制轉為二進制的程序
將十進制轉換成二進制的演算法如下:
1.給定一個數;
2.根據十進制轉換二進制的思想:把這個數除以2若為單數則為1,為偶數則為0,直到最後一個數為1為止。所以我們要做的就是用你給定的這個數除以2,如果結果為奇數則r=1,否則r=0;如此循環下去,直到這個數〉=1。
3.然後把r的值送到一個數組裡面。最後把這個數組裡面的內容從後面列印出來就可以了。
import java.util.Scanner;
public class Hi {
public static void main(String[] args) {
Scanner sc=new Scanner(System.in);
System.out.println("請輸入一個十進制需要轉換為二進制的正整數");
int n=sc.nextInt();
int r;
int i=0;
int[] a=new int[20];
do{
if(n%2==1)
r=1;
else
r=0;
a[i]=r;
n/=2;
i++;
}while(n>0);
System.out.println("十進制轉換為二進制後:");
for(int j=i-1;j>=0;j--){
System.out.print(a[j]);
}
}
}
2. java 浜岃繘鍒惰〃紺 0b鍚庨潰棣栦綅鏄1鐨勮瘽鏄璐熸暟鍚
0b11101001
姝eソ8浣嶄竴涓瀛楄妭錛岀涓涓浣嶆槸絎﹀彿浣嶃
鏁村瀷鏁板湪璁$畻鏈轟腑鐢ㄨˉ鐮佸瓨鍌ㄧ殑銆
鎵浠ョ敱琛ョ爜11101001奼傚師鐮
錛堣礋鏁版眰鍘熺爜闄や簡絎﹀彿浣嶏紝鍏朵粬浣嶄緷嬈″彇鍙嶆渶鍚庡姞涓錛屾垨鑰呭厛鍑忎竴鍐嶅彇鍙嶏紝緇撴灉涓鏍風殑錛
寰楀埌鍘熺爜10010111 灝辨槸 -23銆
3. Java里,,什麼是二進制 什麼是base64他們有什麼區別
二進制就是逢二進一,而我們習慣的是十進制,就是逢十進一,其實就是平時計數的時候用的符號不一樣,十進制是(0~9)10個符號,而二進制只有0和1兩個,因為當超過1的時候就會產生進位,比如二進制加法1+1=10(注意不要和十進制的十混淆,這個是二進制一零,等於十進制的二)。
至於base64就是一套加密演算法唄,有點類似於數學的某個公式,你把你的數字輸入到這個公式就會產生另外一個數字,加密就是把你的信息按照一定的方法轉換成別的信息,如果不知道解密方法,是無法理解信息的內容的,大概就是這樣的意思。還不理解請追問
4. 二進制數比如1001 1001 0000 00,java語言我要分別取到每一位的數值該怎麼寫
可以使岩衫襲用位運算符來實現,比如:
int num = 0b1001_1001_0000_00;
int firstBit = num & 0b1;
int secondBit = (num >> 1) & 0b1;
int thirdBit = (num >粗兄> 2) & 0b1;
int fourthBit = (num >> 3) & 0b1;
// 以此塌圓類推,可以取到每一位的數值
5. java十進制數轉換成二進制,8進制以及16進制二進制轉十進制
Java程序:
publicclassMain{
publicstaticvoidmain(String[]args){
intnum=1234;
System.out.println("十進制:"+num);
System.out.println("二進制:"+Integer.toBinaryString(num));
System.out.println("八進制:"+Integer.toOctalString(num));
System.out.println("十六進制:"+Integer.toHexString(num));
System.out.println();
Stringstr="10011010010";
System.out.printf("二進制:%s 十進制:%d ",str,Integer.parseInt(str,2));
str="2322";
System.out.printf("八進制:%s 十進制:%d ",str,Integer.parseInt(str,8));
str="4D2";
System.out.printf("十六進制:%s 十進制:%d ",str,Integer.parseInt(str,16));
}
}
運行測試:
十進制:1234
二進制:10011010010
八進制:2322
十六進制:4d2
二進制:10011010010 十進制:1234
八進制:2322 十進制:1234
十六進制:4D2 十進制:1234
6. 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:
可以看到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的二進製表示:(這個二進制的後八位就是line1,可以直接列印的話Java把其當做了負數
-2)
Java中255的二進製表示:(24個『0』,8個『1』)
做與後變為:
這樣做與後表示的數就是正數了
254。可以想一下,假設每一行用2個位元組表示一個無符號數,那麼可以把每一行變成正整數用方法2怎麼做?
2.Java中的>>和>>>
'>>'
算術右移,向右移左邊補符號位
'>>>'
邏輯右移,向右移左邊補0
System.out.println("Java二進制-7: "+Integer.toBinaryString(-7));
System.out.println("-7>>2: "+Integer.toBinaryString(-7>>2));
System.out.println("-7>>>2: "+Integer.toBinaryString(-7>>>2));輸出:
Java二進制-7:
-7>>2:
-7>>>2: //正常應該這樣(00)左邊的兩個0不顯示