『壹』 java实现:整数进制相互转换
java实现:整数进制相互转换的方法:
十进制转为二进制、八进制、十六进制, 用 Integer.toXXXString()方法
(1)十进制转为二进制: Integer.toBinaryString(int i);
public static String toBinaryString(inti):以二进制(基数 2)无符号整数形式返回一个整数参数的字符串表示形式。
(2)十进制转为8进制 :Integer.toOctalString(int i);
public static String toOctalString(inti):以八进制(基数 8)无符号整数形式返回一个整数参数的字符串表示形式。
(3)十进制转为16进制: Integer.toHexString(int i);
public static String toHexString(inti):以十六进制(基数 16)无符号整数形式返回一个整数参数的字符串表示形式。
举例:
Stringbin=Integer.toBinaryString(10);
Stringoct=Integer.toOctalString(10);
Stringhex=Integer.toHexString(10);
2.十六进制、八进制、二进制转为十进制(有两种方法):parseInt() 和valueOf()。
Integer.parseInt(String s,int radix);
public static int parseInt(String s,int radix) throws NumberFormatException{}使用第二个参数作为指定的基数,将字符串参数解析为有符号的整数;
Integer.valueOf(String s,int radix);
public static Integer valueOf(Strings, intradix) throws NumberFormatException{}返回一个 Integer 对象,该对象中保存了用第二个参数提供的基数进行解析时从指定的 String 中提取的值。
举例:
try{
inti=Integer.parseInt("a",16);
//输出为10进制数10
System.out.println(i);
}catch(Exceptione){
e.printStackTrace();
}
try{
//十六进制转成十进制
Stringhex=Integer.valueOf("FFFF",16).toString();
System.out.println(hex);
//八进制转成十进制
Stringoct=Integer.valueOf("12",8).toString();
System.out.println(oct);
//二进制转十进制
Stringbin=Integer.valueOf("0101",2).toString();
System.out.println(bin);
}catch(Exceptione){
e.printStackTrace();
}
『贰』 java中怎么将十进制转换为十六进制
用除商取余法
用十进制数除以16 记录下商和余数
然后继续用商去除以16记录下商和余数,直到商为0
最后将余数逆序排列就可以了
比如十进制数33转为十六进制
33/16=2 余1
2/16=0 余2
结果就是0x 21(十六进制以0x开头)
『叁』 用JAVA将十进制转换成十六进制
1、用Integer.toHexString方法即可将十进制装成十六进制。
package com.test;
public class Test {
public static void main(String[] args) {
int i = 123;
System.out.println(Integer.toHexString(i));
}
}
『肆』 跪求“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进制转换函数扩展阅读
一、二进制的表示方法
有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);
『伍』 JAVA编程,请问怎么将十进制数转换成二进制输出,又怎么将二进制数转换成十进制输出
1、创建java类,TestNumConv.java;
『陆』 java中如何将字符串转换为二进制数
方法一:开始,运行,输入cmd,再输入“systemInfo”,拉到上面看“系统类型”,X86的是32位机,64位的是X64(不过,系统是64位的,此处才显示64位)。如果你的系统是64位的,会在“OS?名称:?MicrosoftXP?Professional”一行后明确标示出“x64?Edition”,否则你的系统就是32位的。?
方法二:在开始>运行中输入“winver”,如果你的系统是64位的,同样会明确标示出“x64?Edition”。?
方法三:查看“控制面板”中的“系统属性”?
单击“开始”,然后单击“运行”。键入?sysdm.cpl,然后单击“确定”。单击“常规”选项卡。操作系统显示如下:?
对于?64?位版本的操作系统:“系统”下将显示?Windows?XP?Professional?x64?Edition?版本?<?Year>。?
对于?32?位版本的操作系统:“系统”下将显示?Windows?XP?Professional?版本?<?Year>。?注意<Year>?是一个表示年份的占位符。?方法?四:查看“系统信息”窗口?
单击“开始”,然后单击“运行”。键入?winmsd.exe,然后单击“确定”。?
当导航窗格中已选择“系统摘要”,找到“详细信息”窗格中“项目”下的“处理器”,然后记下该值。?
如果“处理器”对应的值以“x86”开头,表明该计算机运行的是?32?位版的?Windows?操作系统
如果“处理器”对应的值以“ia64”或“AMD64”开头,表明该计算机运行的是?64?位版的?Windows?操作系统?
右键打开我的电脑属性,没有“物理地址扩展”的是32位,有“物理地址扩展”的是64位如果这个方法无效,请尝试其他方法。
『柒』 JAVA如何将10进制的int转成16进制的int
使用java.math.BigInteger,
构造函数BigInteger(String val, int radix) :将指定基数的 BigInteger 的字符串表示形式转换为 BigInteger。
new BigInteger("", 16).toString()即可
『捌』 java十进制转二进制的代码是什么
import java.math.BigDecimal;
public class Test {
public static void main(String[] args) {
Test t = new Test();
double d = 8;
String s = t.decimal2BinaryStr(d);
System.out.println("十进制数"+d+"转成二进制数为:"+s);
}
/**
* 十进制数转二进制数
* @param d 十进制数
* @return 十进制数转换成二进制的字符串
*/
public String decimal2BinaryStr(double d){
String result = decimal2BinaryStr_Inte(d);
result += decimal2BinaryStr_Deci(d);
return result;
}
/**
* 十进制整数部分转二进制数
* @param d 十进制数
* @return 十进制整数部分转换成二尺凯进制的字符串
*/
public String decimal2BinaryStr_Inte(double d){
// return Integer.toBinaryString((int)d);
/*
『玖』 java中如何将十进制数字转化成二进制
如果表达小于2^31-1的正数代码如下:
public void binaryToDecimal(int n){
int t = 0; //用来记录位数
int bin = 0; //用来记录最后的二进制数
int r = 0; //用来存储余数
while(n != 0){
r = n % 2;
n = n / 2;
bin += r * Math().pow(10,t);
t++;
}
System.out.println(bin);
}
使用字符串的拼接(+)来实现大于2^31-1的数,代码如下:
public void binaryToDecimal(int n){
String str = "";
while(n!=0){
str = n%2+str;
n = n/2;
}
System.out.println(str);
}
可以右移后再与0x01进行&运算得到第一位的数字判断判断它的第几位上是0,第几位上是1,代码如下:
class ByteMove
{
public static void main(String[] args)
{
int i = 7;
move(i);
}
static void move(int num){
for(int i= 0;i<6;i++){
System.out.println("第"+(i+1)+"位:" + (num >> i & 0x01));
}
}
}
『拾』 用java写一个进制转换的函数: convert(int n ):输入一个十进制数n,将它转换成R进制数输出。
将十进制数裂禅N转换为r进制的数,其转换方法利用辗转相除法:以N=3456,r=8为例转换
以下是核心代码,如果需要完整源文件的,留个邮箱给我。
package src;
import javax.swing.JOptionPane;
public class NumberConvert {
public static void main(String args[])
{
LinkedStack<String> stack = new LinkedStack<String>(); //创建空栈
String inputstr;
char charremainder;
int sourcedecimalnumber,conversion,remainder,business;
do
{
try
{
inputstr=JOptionPane.showInputDialog("请输入你空悔需要转换的十进制数:");
sourcedecimalnumber=Integer.parseInt(inputstr);
break;
}
catch (NumberFormatException exception)
{
JOptionPane.showMessageDialog(null,"请输入数字(十进制数)!","提示信息",0);
}
}while(true);
do
{
try
{
do
{
inputstr=JOptionPane.showInputDialog("请输入你需要转换进制(2~16之间的进制数):");
conversion=Integer.parseInt(inputstr);
if (conversion>1 && conversion<17)
break;
else
JOptionPane.showMessageDialog(null,"请输入2~16以内的数字!","提示信息",0);
}while (true);
break;
}
catch (NumberFormatException exception)
{
JOptionPane.showMessageDialog(null,"请输入数字(所要斗源正转换的进制数)!","提示信息",0);
}
}while(true);
business=sourcedecimalnumber;
while(business!=0)
{
remainder=business%conversion;
if(remainder>9)
remainder+=55;
else
remainder+=48;
charremainder=(char)remainder;
char [] chararray={charremainder};
stack.push(new String(chararray));
business/=conversion;
}
while(!stack.isEmpty())
{
System.out.print(stack.pop());
}
}
}