A. java程序在控制台输入一个正整数,要求以二进制的形式输出怎么做
publicstaticvoidmain(String[]args){
intn=-10;
Stringresult="";
booleanminus=false;
//如果该数字为负数,那么进行该负数+1之后的绝对值的二进制码的对应位取反,然后将它保存在result结果中
if(n<0){
minus=true;
n=Math.abs(n+1);
}
while(true){
intremainder=(!minus&&n%2==0)||(minus&&n%2==1)?0:1;
//将余数保存在结果中
result=remainder+result;
n/=2;
if(n==0){
break;
}
}
//判断是否为负数,如果是负数,那么前面所有位补1
if(minus){
n=result.length();
for(inti=1;i<=32-n;i++){
result=1+result;
}
}
System.out.println(result);
}
B. (java)编写程序将一个整数转为二进制形式输出
java.lang.Integer这个API包中有进制转换的函数
public static String toBinaryString(int i)
C. java 如何显示 二进制
java显示二进制,主要是使用基本类型的包装类的tobinaryString类型进行转换,代码如下:
packagecom.qiu.lin.he;
importjava.text.ParseException;
publicclassCeshi{
publicstaticvoidmain(String[]args)throwsParseException{
inti=8;
//使用包装类的toBinaryString转换成二进制
System.out.println(Integer.toBinaryString(i));
}
}
运行结果如下
D. java中怎么把一个数做二进制形式输出
System.out.println(Integer.toBinaryString(i));
System.out.println(Integer.toBinaryString(c));
E. Java二进制显示 小弟刚学Java 请问如何将文字以二进制格式输出。。。
public class BinaryTest {
public static void main(String[] args){
String s = "测试";
char[] charArray =s.toCharArray();
for(char c: charArray){
System.out.println(Integer.toBinaryString(c));
}
}
用我的这段代码就可以了,我已经跑通了
F. 用Java输入一个十进制,转换成二进制并输出
import java.util.Scanner;
public class ReversedBinary {
public static void main(String[] args) {
int number;
Scanner in = new Scanner(System.in);
System.out.println("输入一个十进制数");
number = in.nextInt();
if (number < 0) {
System.out.println("Error: Not a positive integer");
} else {
System.out.print("Convert to binary is:");
printBinaryform(number);
}
}
private static void printBinaryform(int number) {
int remainder;
if (number <= 1) {
System.out.print(number);
return;
}
remainder = number %2;
printBinaryform(number >> 1);
System.out.print(remainder);
}
}
G. java的数字二进制输出
要是我肯定先尝试一下,二进制以B开头,那就b代表下看咯,不行再去查。
事实也证明是不行的,查了一下,还真没有二进制的输出形式。
Integer 类倒是有相应的方法:
static StringtoBinaryString(int i)
以二进制(基数 2)无符号整数形式返回一个整数参数的字符串表示形式。
System.out.print(Integer.toBinaryString(x));
H. java程序在控制台输入一个正整数,要求以二进制的形式输出
利用JavaAPI直接转换
十进制数如何转换为二进制数,这在javaAPI 中有一个方法,Integer.toBinaryString( ) 括号里面写上你要转换的十进制数,这样可以直接转换。例如:
publicstaticvoidmain(String[]args){
十进制转换为二进制
System.out.println(Integer.toBinaryString(10));
}
通过求余,求商,并计算值(例如:把二进制的1010 直接输成十进制的1010)实现
publicstaticvoidmain(String[]args){但是这种方法存在一个问题:因为int类型是有取值范围的,如果转换的二进制数字超出了范围(例如:10011100110110)这个数字明显超出了int的取值范围,这样我们用int类型的sum进行存储的时候他就会自动转换为一个其他的数字。并且这个方法没有办法求负数的二进制数。
//TODOAuto-generatedmethodstub
inta=123;//定义一个变量并赋给他一个十进制的值
intremainder;//定义一个变量用于存储余数
intsum=0;//定义一个变量用于存放和
intk=1;//定义一个变量控制位数
while(a!=0){
remainder=a%10;//对目标数字求余
a/=2;//对目标数字求商
sum=sum+remainder*k;//求和
k*=10;//改变位数
}
System.out.println("10进制的123转换为2进制结果为:"+sum);
}
在方法二的基础上使用字符串对结果集进行存储
publicstaticvoidmain(String[]args){用这种方法就能很好解决int类型的越界问题,能解决所有的十进制转换二进制的问题。
intn=-10;
Stringresult="";
booleanminus=false;
//如果该数字为负数,那么进行该负数+1之后的绝对值的二进制码的对应位取反,然后将它保存在result结果中
if(n<0){
minus=true;
n=Math.abs(n+1);
}
while(true){
intremainder=(!minus&&n%2==0)||(minus&&n%2==1)?0:1;
//将余数保存在结果中
result=remainder+result;
n/=2;
if(n==0){
break;
}
}
//判断是否为负数,如果是负数,那么前面所有位补1
if(minus){
n=result.length();
for(inti=1;i<=32-n;i++){
result=1+result;
}
}
System.out.println(result);
}
I. 怎么用 java输出二进制的23
java进制转换
java中进行二进制,八进制,十六进制,十进制间进行相互转换
十进制转成十六进制:
Integer.toHexString(int i)
十进制转成八进制
Integer.toOctalString(int i)
十进制转成二进制
Integer.toBinaryString(int i)
十六进制转成十进制
Integer.valueOf("FFFF",16).toString()
八进制转成十进制
Integer.valueOf("876",8).toString()
二进制转十进制
Integer.valueOf("0101",2).toString()
J. 用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