⑴ 請問java的什麼二進制 八進制跟數學的一樣嗎,怎麼算的啊
幾進制就是逢幾進一的數字表示方法,如我們常用的十進制,就是逢十進一,一共用10個數字表示,二進制就是逢二進一,有0,1兩個數字表示,八進制就是逢8進一,有0~7,8個數字表示,如用二進製表示9就是1001,八進製表示9就是11
⑵ Java中怎麼表示八進制和十六進制
八進制:int
a=031;
//8進制,以數字0開始。
十六進制:int
b=0x1B;
//16進制,以0x開始。
1、八進制數的表達方法:
如何表達一個八進制數呢?如果這個數是
876,我們可以斷定它不是八進制數,因為八進制
中不可能出7以上的阿拉伯數字。但如果這個數是123、是567,或12345670,那麼它是八進
數還是10進制數,都有可能。 所以規定,一個數如果要指明它採用八進制,必須在它前面
上一個0,如:123是十進制,但0123則表示採用八進制。這就是八進制數的表達方法。
2、十六進制數的表達方法
:
如果不使用特殊的書寫形式,16進制數也會和10進制相混。隨便一個數:9876,就看不出它是
16進制或10進制。
16進制數必須以
0x開頭。比如
0x1表示一個16進制數。而1則表示一個
進制。另外如:0xff,0xFF,0X102A,等等。其中的x也也不區分大小寫。(注意:0x中的0是數字
0,而不是字母O)
。
⑶ Java里的十二進制,六進制,二進制,分別怎麼轉換
轉換為2的幾何級數倍進制比較容易,其他的就不方便了。
先說和10進制的轉換:
倒序將2進制數編冪數,例如10101010從後向前冪數依次為7654321,所以它轉換為10進制就是1*2^7+0*2^6+1*2^5+0^2^4+1*2^3+0^2^2+1^2^1+0^2^0=170,這種演算法適用於將任意進制轉換為10進制,只要將底數替換即可。
下面說2的幾何級數倍的演算法:
一般就是將2進制按2的級數進行分段,比方說8進制(8是2的3次方),將2進制分為每3位一段進行轉換,每段單獨按十進制轉換即可。
10101010,分為10|101|010,然後每段進行單獨轉換,10轉換後為2,101轉換後為5,010轉換後為2,所以10101010(2)=252(8)。
其他進制一般演算法就是先將2進制轉換為10進制,再用短除法轉換為其他進制,短除法我記不清怎麼個演算法了,並不是算公約數之類的那個短除法,借位演算法比較特殊,只不過最後余數作為最後一位。
例如170(10)進制就使用170=332(7)
⑷ 跪求「java中二進制怎麼表示」
java中二進制的表示:
1、Java中定義兩個數,然後分別列印出它們的二進製表示(例如7和-7):
System.out.println("Java二進制7:"+Integer.toBinaryString(7));
System.out.println("Java二進制-7:"+Integer.toBinaryString(-7));
輸出:
Java二進制7: 111
Java二進制-7:
7的二進制就是111
-7轉化二進制的過程:
(1)把-7轉化成7,二進制是 111
(2)Java中對於不滿32位的int二進制自動補齊,所以變成了 (29個0)111
(3)然後取反 (29個1)000
(4)然後加1 (29個1)001
(4)java進制是什麼擴展閱讀:
c語言中二進制的轉換:
用函數轉換itoa(值,數組名,進制)
#include<stdio.h>
#include<stdlib.h>
voidmain()
{
char str[8];
inti=8;
itoa(i,str,2);
printf("%s",str);
}
⑸ 請問java中 二進制,十進制,十六進制,是哪樣定義的他們之間怎麼轉換呢
二進制,0001
只能是0或1.
十進制,123...
1-10之間.
十六進制,123...abcdef
(1-10)+(a-f)之間
十進制"8"轉換二進制1000
規律循環對8取模2
循環4次後
得到結果0001,再反過來就是轉換後得到的二進制數了.
十進制30轉換十六進制0x1d
Integer.toHexString(30);
jdk封裝了轉換的演算法,規律自己去研究吧.
⑹ Java里,,什麼是二進制 什麼是base64他們有什麼區別
二進制就是逢二進一,而我們習慣的是十進制,就是逢十進一,其實就是平時計數的時候用的符號不一樣,十進制是(0~9)10個符號,而二進制只有0和1兩個,因為當超過1的時候就會產生進位,比如二進制加法1+1=10(注意不要和十進制的十混淆,這個是二進制一零,等於十進制的二)。
至於base64就是一套加密演算法唄,有點類似於數學的某個公式,你把你的數字輸入到這個公式就會產生另外一個數字,加密就是把你的信息按照一定的方法轉換成別的信息,如果不知道解密方法,是無法理解信息的內容的,大概就是這樣的意思。還不理解請追問
⑺ 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不顯示
⑻ java進制怎麼演算法
朋友你好,
我想先告訴你關於二進制的演算法,我想你看明白之後就會明白八進制、十進制、十六進制之間的轉換演算法了:
while(n>=1){
tnum[x]=n%2;
//將結果逐一存貯在數組內
n=n/2;
x++;
}
首先我們明白一個道理,一個十進制數轉換為二進制數,就是相當於將這個數分解成2從0到X次冪相加的結果。對此演算法,傳入一個數,求其與2的余數(N%2),相當於將其分解成了2的若干次冪,而這些冪的排列即是這個十進制數轉換成二進制的結果,最後不過是符號與補位的判斷而已。
經過這個演算法,八進制,十六進制之間的區別也僅僅是將演算法中的二替換成8或者16,然後對其所得的結果進行判斷然後替換成相應的字元而已。
希望能夠對你有所幫助。
⑼ Java中怎麼表示八進制和十六進制了
八進制:int a=031; //8進制,以數字0開始。
十六進制:int b=0x1B; //16進制,以0x開始。
⑽ JAVA中八進制 十進制 十六進制分別是什麼意思
和數學里八進制 十六進制沒什麼區別
不過在Java中聲明八進制,是在賦值數字前加0,如 int i = 010; 輸出為十進制10;
聲明十六進制,在賦值數字前加0x,如int i = 0x15;輸出為十進制21;