❶ 用java實現輸入兩個二進制數並仍然以二進制輸出其和,不能用先轉十進制相加再轉二進制的方法,請給出代碼
我這個演算法不高,暫時想不到別的方法,你試試吧。
主要是模擬自然語言中的加法運算步驟。
兩個數相加,會得到一個結果,和一個進位的結果,
然後將這個進位的結果後面加0補位,然後再和這個結果相加。如此遞歸,知道進位全部是0為止
publicclass${
publicstaticvoidmain(String[]args){
Strings0="100";//十進制4
Strings1="10100";//十進制20
StringBufferresult=newStringBuffer();
StringBufferjinwei=newStringBuffer();
System.out.println(test(result,jinwei,s0,s1));
}
privatestaticStringtest(StringBufferresult,StringBufferjinwei,Strings0,Strings1){
//沒有進位了就退出
if(s0.length()>0&&s0.indexOf("1")<0){
returns1;
}
//位數補齊
intlen0=s0.length();
intlen1=s1.length();
intminLen=Math.max(len0,len1);
s0=buqi(len0,minLen)+s0;
s1=buqi(len1,minLen)+s1;
for(inti=s0.length()-1;i>=0;i--){
Stringstr0=s0.substring(i,i+1);
Stringstr1=s1.substring(i,i+1);
add(result,jinwei,str0,str1);
}
StringtmpJinwei=jinwei.reverse().toString()+"0";
jinwei.delete(0,jinwei.length());
StringtmpResult=result.reverse().toString();
result.delete(0,result.length());
returntest(result,jinwei,tmpJinwei,tmpResult);
}
privatestaticvoidadd(StringBufferresult,StringBufferjinwei,Stringstr0,Stringstr1){
//00相加為0,不進位
if("0".equals(str0)&&"0".equals(str1)){
result.append("0");
jinwei.append("0");
return;
}
//11相加為0,進位1
if("1".equals(str0)&&"1".equals(str1)){
result.append("0");
jinwei.append("1");
return;
}
//其他情況,相加為1,不進位
result.append("1");
jinwei.append("0");
}
privatestaticStringbuqi(intlen0,intminLen){
Stringtmp="";
for(inti=len0;i<minLen;i++){
tmp+="0";
}
returntmp;
}
}
結果
011000
❷ java怎麼存儲二進制
1、利用紙和筆進行計算十進制的小數轉換為二進制小數,主要是利用小數部分乘2,取整數部分,直至小數點後為0。下面以十進制的0.625為例,將它轉化成二進制將小數部分0.625乘2,取整數部分1,如圖:用剩餘的小數部分0.25乘2,取整數部分0,如圖:將剩餘的小數部分0.5乘2,取整數部分。
2、移位位運算中大多數操作都是向左移位和向右移位在Java中,這對應著>這兩個操作符,示例如下:1234567891011/*000000011/*000000011/*>>4=1111111111111。
3、可以運用jdk工具監控java應用性能,再配合jmeter進行了一個長時間的加壓,在加壓過程中重點關注了系統資源的使用情況D:ProgramFiles(x86)Javajdk1.8.0_111in這個目錄下的工具jps-ListstheinstrumentedJav。
❸ java中二進制怎麼表示
一、二進制的表示方法
有0,1組成。以0b開頭。
代碼的表示方法:
System.out.println(0b100)
二、不同進制的數據表現:
八進制:由0,1,....,7.以0開頭。
十進制:由0,1......,9.默認整數。
十六進制:由0,1,......9,a,b,c,d,e,f(大小寫均可)組成。
十進制:System.out.println(100);
八進制:System.out.println(0100);
十六進制: System.out.println(0x100);
(3)java輸入二進制擴展閱讀
java 判斷二進制文件的代碼:
public static boolean isBinary(File file)
{
boolean isBinary = false;
try {
FileInputStream fin = new FileInputStream(file);
long len = file.length();
for (int j = 0; j < (int) len; j++) {
int t = fin.read();
if (t < 32 && t != 9 && t != 10 && t != 13) {
isBinary = true;
break;
}
}
} catch (Exception e) {
e.printStackTrace();
}
return isBinary;
}
❹ 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位開始算的)
這樣就能取具體每一位的值
這種方法在很吃代碼效率的程序中經常遇到
全手打,望支持