public class test{ StringBuffer buff=new StringBuffer(); int num=23478; public test(){ while(num>0){ int i=num%2; num/=2; buff.append(i+""); } System.out.println(buff.reverse()+""); } public static void main(String args[]) { new test (); } }
public static void main(String[] args) { int i = 23478; int[] binary = new int[32]; int j = 0; while (i > 0) { binary[j++] = i & 1; i >>>= 1; } for (j = 31; j >= 0; j--) { System.out.print(binary[j]); } System.out.println(); }00000000000000000101101110110110
public class HexConversion {
public HexConversion(int num){ //带参数的构造方法,当new一个带参数的对象时自动执行这个构造方法
int[] array = new int[32]; //存储二进制的四个字节,三十二位,数组的每一位都会初始化为零
for(int i = 31 ; num > 0 ; i --){ //利用进制转换的方法,从数组的后面开始,把余数放到数组里面 array[i] = num % 2 ; num /= 2 ; } for(int i = 0 ; i < array.length ; i ++){ //打印数组 if(i % 8 == 0 && i > 0){ //每八位用一个空格隔开 System.out.print(" "); } System.out.print(array[i]+""); } }
public static void main (String args[]){ int num = 10; new HexConversion(num); } }
import java.util.Scanner; public class Test07 { public static void main(String[] args) { int a; Scanner r = new Scanner(System.in); System.out.println("请输入一个整数"); a = r.nextInt(); String s = ""; do { int i = a & 1; a >>>= 1; s = i + s; // 此处不能写成 s=s+i } while (a != 0); System.out.println("对应的二进制是:" + s); } }
public class Test { public static int[] intToBin(int num) { int[] bin = new int[32]; int k = 0; if(num >= 0) { //正数状态 while(num != 0) { bin[k++] = num % 2; num /= 2; } while(k < 32) bin[k++] = 0; } else { //负数状态 num = - num; //求负数的源码 while(num != 0) { bin[k++] = num % 2; num /= 2; } while(k < 31) bin[k++] = 0;
把10进制转进去返回的就是了
int number = Integer.parseInt(numberString, 16);
return String.format("%0" + n + "x", number);
} /**
* @param args
*/
public static void main(String[] args) {
// TODO Auto-generated method stub
try {
BufferedReader br1=new BufferedReader(new InputStreamReader(System.in));
int n = Integer.parseInt(br1.readLine());
String ret = Integer.toBinaryString(n);
ret = padLeft("0", 32 - ret.length()) + ret;
System.out.println(ret);
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
import java.util.Scanner;
import java.util.Stack;
public class Binary {
public static void main(String[] args) {
Scanner input = new Scanner(System.in);
System.out.println("请输入一个正整数:");
int num = input.nextInt();
if(num < 0) {
System.out.println("请输入一个正整数!");
return;
}
System.out.println(toBinary(num));
}
/**
* 利用栈实现将一个10进制数转换为2进制数
* @param num 待转换的正整数
* @return num的二进制表示形式
*/
public static String toBinary(int num) {
Stack<Integer> stack = new Stack<Integer>();
StringBuffer sb = new StringBuffer();
if(num == 0) {
stack.add(0);
}
//余数入栈
while(num != 0) {
stack.add(num % 2);
num = num / 2;
}
//出栈,得到结果序列,存入StringBuffer
while(!stack.isEmpty()) {
sb.append(stack.pop());
}
return sb.toString();
}
}上面的是我做的一个简单是实现,楼主可以参考参考!
public class test{
StringBuffer buff=new StringBuffer();
int num=23478;
public test(){
while(num>0){
int i=num%2;
num/=2;
buff.append(i+"");
}
System.out.println(buff.reverse()+"");
}
public static void main(String args[]) {
new test ();
}
}
int i = 23478;
int[] binary = new int[32];
int j = 0;
while (i > 0) {
binary[j++] = i & 1;
i >>>= 1;
}
for (j = 31; j >= 0; j--) {
System.out.print(binary[j]);
}
System.out.println();
}00000000000000000101101110110110
public class HexConversion {
public HexConversion(int num){ //带参数的构造方法,当new一个带参数的对象时自动执行这个构造方法
int[] array = new int[32]; //存储二进制的四个字节,三十二位,数组的每一位都会初始化为零
for(int i = 31 ; num > 0 ; i --){ //利用进制转换的方法,从数组的后面开始,把余数放到数组里面
array[i] = num % 2 ;
num /= 2 ;
}
for(int i = 0 ; i < array.length ; i ++){ //打印数组
if(i % 8 == 0 && i > 0){ //每八位用一个空格隔开
System.out.print(" ");
}
System.out.print(array[i]+"");
}
}
public static void main (String args[]){
int num = 10;
new HexConversion(num);
}
}
import java.util.Scanner;
public class Test07 {
public static void main(String[] args) {
int a;
Scanner r = new Scanner(System.in);
System.out.println("请输入一个整数");
a = r.nextInt();
String s = "";
do {
int i = a & 1;
a >>>= 1;
s = i + s; // 此处不能写成 s=s+i
} while (a != 0);
System.out.println("对应的二进制是:" + s);
}
}
public class Test {
public static int[] intToBin(int num) {
int[] bin = new int[32];
int k = 0;
if(num >= 0) { //正数状态
while(num != 0) {
bin[k++] = num % 2;
num /= 2;
}
while(k < 32)
bin[k++] = 0;
} else { //负数状态
num = - num;
//求负数的源码
while(num != 0) {
bin[k++] = num % 2;
num /= 2;
}
while(k < 31)
bin[k++] = 0;
//对源码按位取反
for(k = 0; k < 31; k++)
if(bin[k] == 1)
bin[k] = 0;
else
bin[k] = 1;
//解析成内存中的样子
for(k = 0; k < 31; )
if(bin[k] + 1 == 2) {
bin[k] = 0;
if(bin[k + 1] == 0) {
bin[k] = 1;
break;
} else
k++;
} else {
bin[k] = 1;
break;
}
bin[31] = 1;
}
return bin;
}
public static void main(String[] args) {
int[] toBin;
toBin = intToBin(1);
for(int i = 31; i>= 0; i--)
System.out.print(toBin[i] + " ");
}
}
toBin(1)
得到0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1
toBin(-1)
得到1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 其实我就是模拟的就求二进制数学表达
int mask = 0x80000000;
for(int i=0;i<32;i++){
system.out.println( (x&mask)==0?'0':'1');
mask >>> 1;
}
}
/**
* 方法一
*/
String converteTOBinary(int source){
String targetStr = Integer.toBinaryString(source);
while(targetStr.length() < 32){
targetStr = "0" + targetStr;
}
return targetStr;
}/**
* 方法二
*/
String converteTOBinary(int source){
String targetStr = Integer.toBinaryString(source);
return ("00000000000000000000000000000000" + targetStr).substring(targetStr.length());
}
《巨和_连金亮_JAVA视频(J2SE),从入门到精通【压缩高清独立光纤下载完整版】》的提供了光线下载,有需求的朋友可以去 http://www.verycd.com/topics/2839540/ 下载。