❶ 用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位开始算的)
这样就能取具体每一位的值
这种方法在很吃代码效率的程序中经常遇到
全手打,望支持