java转换二进制
❶ java编程,请问怎么将十进制数转换成二进制输出,又怎么将二进制数转换成十进制输出
1、创建java类,TestNumConv.java;
❷ java十进制数转换成二进制,8进制以及16进制二进制转十进制
Java程序:
publicclassMain{
publicstaticvoidmain(String[]args){
intnum=1234;
System.out.println("十进制:"+num);
System.out.println("二进制:"+Integer.toBinaryString(num));
System.out.println("八进制:"+Integer.toOctalString(num));
System.out.println("十六进制:"+Integer.toHexString(num));
System.out.println();
Stringstr="10011010010";
System.out.printf("二进制:%s 十进制:%d ",str,Integer.parseInt(str,2));
str="2322";
System.out.printf("八进制:%s 十进制:%d ",str,Integer.parseInt(str,8));
str="4D2";
System.out.printf("十六进制:%s 十进制:%d ",str,Integer.parseInt(str,16));
}
}
运行测试:
十进制:1234
二进制:10011010010
八进制:2322
十六进制:4d2
二进制:10011010010 十进制:1234
八进制:2322 十进制:1234
十六进制:4D2 十进制:1234
❸ 在java中怎么把字节数组转换成二进制字符串
可以使用Integer类的toBinaryString方法,例如:
bytea=0x45;
StringbinStr=Integer.toBinaryString(a).
API中toBinaryString的解释:
toBinaryString
public static String toBinaryString(inti)
以二进制(基数 2)无符号整数形式返回一个整数参数的字符串表示形式。
如果参数为负,该无符号整数值为参数加上 232;否则等于该参数。将该值转换为二进制(基数 2)形式的无前导0的 ASCII 数字字符串。如果无符号数的大小为零,则用一个零字符'0'(’u0030’) 表示它;否则,无符号数大小的表示形式中的第一个字符将不是零字符。字符'0'('u0030') 和'1'('u0031') 被用作二进制数字。
参数:
i- 要转换为字符串的整数。
返回:
用二进制(基数 2)参数表示的无符号整数值的字符串表示形式。
从以下版本开始:
JDK1.0.2
❹ java怎样把字符串转化为二进制形式
importjava.io.UnsupportedEncodingException;
importjava.util.Arrays;
/*
*String(byte[]bytes,StringcharsetName):通过指定的字符集解码字节数组
*byte[]getBytes(StringcharsetName):使用指定的字符集合把字符串编码为字节数组
*
*编码:把看得懂的变成看不懂的
*String--byte[]
*
*解码:把看不懂的变成看得懂的
*byte[]--String
*
*举例:谍战片(发电报,接电报)
*
*码表:小本子
* 字符 数值
*
*要发送一段文字:
* 今天晚上在老地方见
*
* 发送端:今--数值--二进制--发出去
* 接收端:接收--二进制--十进制--数值--字符--今
*
* 今天晚上在老地方见
*
*编码问题简单,只要编码解码的格式是一致的。
*/
publicclassStringDemo{
publicstaticvoidmain(String[]args){
Strings="你好";
//String--byte[]
byte[]bys=s.getBytes();//[-60,-29,-70,-61]
//byte[]bys=s.getBytes("GBK");//[-60,-29,-70,-61]
//byte[]bys=s.getBytes("UTF-8");//[-28,-67,-96,-27,-91,-67]
System.out.println(Arrays.toString(bys));
//byte[]--String
Stringss=newString(bys);//你好
//Stringss=newString(bys,"GBK");//你好
//Stringss=newString(bys,"UTF-8");//???
System.out.println(ss);
}
}
❺ 求java十进制转二进制代码
很高兴回答你的问题
希望对你有帮助
Java实现十进制转换二进制的一段代码0
1.复制代码package work;
2.import java.util.*;
3.public class jin{
4.public static void main(String[]args){
5.Scanner input=new Scanner(System.in);
6.int num; //声明一个num变量用来存贮获取键盘输入的数值
7.int[] tnum=new int[10]; //声明一个数组,用来存贮二进制的每一位数字
8.System.out.print(\"请输入一个100以内的整数:\");
9.num=input.nextInt(); //从键盘获取数值
..
.. /*循环,用来检测输入的数值是否大于100*/
while(num>100){
System.out.print(\"数字不能大于100!重新输入:\");
num=input.nextInt();
}
/*循环结束*/
int n=num; //声明n变量用并赋值输入的值
int x=0; //声明x变量,用来控制数组
/*循环,用来计算十进制转换为二进制数后的每一位*/
while(n>=1){
tnum[x]=n%2; //将结果逐一存贮在数组内
n=n/2;
x++;
}
/*循环结束*/
System.out.print(num+\"转换成二进制是:\");
x--; //这里x变量需要“--”才能与数组标签匹配
/*for循环控制数组序列反转输出,从后往前*/
for(int i=x;i>=0;i--){
System.out.print(tnum[i]);
}
/*循环结束*/
}
}
❻ java里怎样把文件转换成二进制
转换文件成为二进制数据并保存的Java代码:
取出数据并还原文件到本地的java代码:
[java]view plain//读取数据库二进制文件
publicvoidreaderJpg()throwssqlException
{
connection=connectionManager.getconn();//自己连接自己的数据库
StringsqlString="selectimagesfromsave_imagewhereid=4";//从数据库中读出要还原文件的二进制码,这里我读的是自己的数据库id为4的文件
Filefile=newFile("E:\1.jpg");//本地生成的文件
if(!file.exists())
{
try{
file.createNewFile();
}catch(Exceptione){
e.printStackTrace();
}
}
try{
byte[]Buffer=newbyte[4096*5];
statement=connection.prepareStatement(sqlString);
resultSet=statement.executeQuery();
if(resultSet.next())
{
FileOutputStreamoutputStream=newFileOutputStream(file);
InputStreamiStream=resultSet.getBinaryStream("images");//去字段用getBinaryStream()
intsize=0;
while((size=iStream.read(Buffer))!=-1)
{
System.out.println(size);
outputStream.write(Buffer,0,size);
}
}
}catch(Exceptione){
e.printStackTrace();
}
}
❼ Java中如何把图片转换成二进制流
Java中将图片转为二进制流只需要使用FileImageInputStream取得图片文件,然后使用ByteArrayOutputStream 写入到二进制流中即可,下面是详细代码:
//图片到byte数组
publicbyte[]image2byte(Stringpath){
byte[]data=null;
FileImageInputStreaminput=null;
try{
input=newFileImageInputStream(newFile(path));
ByteArrayOutputStreamoutput=newByteArrayOutputStream();
byte[]buf=newbyte[1024];
intnumBytesRead=0;
while((numBytesRead=input.read(buf))!=-1){
output.write(buf,0,numBytesRead);
}
data=output.toByteArray();
output.close();
input.close();
}
catch(FileNotFoundExceptionex1){
ex1.printStackTrace();
}
catch(IOExceptionex1){
ex1.printStackTrace();
}
returndata;
}
另外,如果需要将byte[]存回图片或转为String,则:
//byte数组到图片
publicvoidbyte2image(byte[]data,Stringpath){
if(data.length<3||path.equals(""))return;
try{
=newFileImageOutputStream(newFile(path));
imageOutput.write(data,0,data.length);
imageOutput.close();
System.out.println("MakePicturesuccess,Pleasefindimagein"+path);
}catch(Exceptionex){
System.out.println("Exception:"+ex);
ex.printStackTrace();
}
}
//byte数组到16进制字符串
publicStringbyte2string(byte[]data){
if(data==null||data.length<=1)return"0x";
if(data.length>200000)return"0x";
StringBuffersb=newStringBuffer();
intbuf[]=newint[data.length];
//byte数组转化成十进制
for(intk=0;k<data.length;k++){
buf[k]=data[k]<0?(data[k]+256):(data[k]);
}
//十进制转化成十六进制
for(intk=0;k<buf.length;k++){
if(buf[k]<16)sb.append("0"+Integer.toHexString(buf[k]));
elsesb.append(Integer.toHexString(buf[k]));
}
return"0x"+sb.toString().toUpperCase();
}
❽ 如何用JAVA语言将十六进制数转换成二进制数,并输出
我的思路很简单:
publicclass六转2
{
publicstaticvoidmain(String[]args)
{
System.out.println(" ==========16转二进制========== ");
init();
}//初始化!
privatestaticvoidinit()
{
//字符串形式的:16进制!
Strings="ACCC";
//字符串形式十进制--作为桥梁!
intsint=Integer.valueOf(s,16);
//十进制在转换成二进制的字符串形式输出!
Stringbin=Integer.toBinaryString(sint);
//输出!
System.out.println(bin);
}
}
❾ 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));
}
}
}