导航:首页 > 编程语言 > cjava二进制互转

cjava二进制互转

发布时间:2022-09-28 08:09:02

1. java里面二进制 八进制 十进制 十六进制怎么互相转换,有什么规律

=============(正)十进制转二进制
除二将余数倒置
eg: 127 /2
商:63 /2 31 /2 15 /2 7 /2 3 /2 1
余数:1 1 1 1 1 1
1111111
=============(负)十进制转二进制
1、先求负数绝对值的二进制
2、将得到的二进制完全取反+1
eg: -12
1、0000 1100
2、1111 0011 + 1 = 1111 0100

=============(正)十进制转八进制
除八将余数倒置
eg:54 /8 =66
6
6
=============(负)十进制转八进制
1、先将十进制转为二进制
2、再将二进制转为八进制
eg:-32
1、0010 0000
2、1110 0000
3、三位三位转
340

=============十进制转十六进制
1、先将十进制转为二进制
2、将二进制转为十六进制

=============二进制转为十进制
(正)二进制位上的各个数字乘以以2为底数,以自然数为次幂(自然数从0开始)
0110 1011 1*2^0 + 1*2^1 + 0*2^2 + 1*2^3 + 0*2^4 + 1*2^5 + 1*2^6 = 107

(负)
1、首先得到负号
2、将该二进制数取反+1
3、将得到的数转为十进制加上负号。

=============二进制转八进制
(1)将二进制三个三个分为一组,分别求出每组二进制的八进制值,将所得到的值依次排开

(2) 1、将二进制转为十进制
2、将十进制转为八进制

============二进制转十六进制
将二进制四个四个分为一组,分别求出每组二进制的十六进制值,将所得到的值依次排开

============八进制转二进制
(1)将八进制各个位上的数单个转为二进制,不足三位的补0
eg:127 001 010 111

(2) 1、将八进制转为十进制
2、再将十进制转为二进制

============八进制转十进制
八进制位上的各个数字乘以以8为底数,以自然数为次幂(自然数从0开始)
543 3*8^0 + 4*8^1 + 5*8^2 = 355

============八进制转十六进制
1、先将八进制转为二进制
2、再将所得的二进制转为十六进制

============十六进制转二进制
将十六进制各个位上的数单个转为二进制,不足四位的补0
eg:127 0001 0010 0111

============十六进制转其他进制
都需要先转为二进制,再转为其他进制

2. 用JAVA把二进制数转换成十进制数。

一楼回答的非常详尽了哈,

就是感觉太多了,

个人觉得,比较常用的就是Integer的parseInt()方法,

使用起来也非常方便:

int a = Integer.parInt("你的二进制数", 2);

3. 用java实现java的2进制文件字节序转换到C/C++的2进制文件字节序

传输的时候没问题,主要是写的时候,这有个文件编码的问题,编码统一就好了。

4. 怎么实现 将 二进制与字符串的互相转换,C,C++,Java实现都可以。

//既然别人说我不是人,那我就做个神,我来回答你的问题好了,你不无聊

importjava.util.Scanner;

publicclassKaiba
{
privatestaticStringstr2Bin(Stringstr)
{
char[]strChar=str.toCharArray();
Stringresult="";
for(inti=0;i<strChar.length;i++)
{
result+=Integer.toBinaryString(strChar[i])+"";
}
returnresult;
}

privatestaticStringbin2Str(Stringbin)
{
Stringresult="";
String[]strs=bin.split("\s+");
for(inti=0;i<strs.length;i++)
{
Stringstr=strs[i];
result+=newString(Character.toChars(Integer.parseInt(str,2)));
}
returnresult;
}
publicstaticvoidmain(String[]args)
{
Scannerscanner=newScanner(System.in);
Stringbin=scanner.nextLine().trim();
System.out.println(bin2Str(bin));
Stringstr=scanner.nextLine().trim();
System.out.println(str2Bin(str));
scanner.close();
}

}

5. 用java实现java的2进制文件字节序转换到C/C++的2进制文件字节序

package admit.action;/*用JAVA读取各种计算机文件系统的文件列表 当你安装了jdk,在jdk的类库里,有一个标准的File类,通过该类,可以很方便的实现浏览各种文件系统的功能。
File类:
java.lang.Object
|
+--java.io.File
File类扩展了Object对象,实现了Serializable, Comparable定义的接口,可以通过File的一个实例对jvm上的文件系统进行各种操作,下面我编写了一个FileViewer类,该类通过Iterator类将一个文件列表实现对列表的迭代操作
FileViewer.java */import java.io.File;
import java.util.ArrayList;
import java.util.Date;
import java.util.Iterator;
import java.util.Vector;public class ReadPath {
File myDir; File[] contents; Vector vectorList; Iterator currentFileView; File currentFile; String path; public ReadPath() {
path = new String("");
vectorList = new Vector();
} public ReadPath(String path) {
this.path = path;
vectorList = new Vector();
} /**
* 设置浏览的路径
*/
public void setPath(String path) {
this.path = path;
} /***************************************************************************
* 返回当前目录路径
*/
public String getDirectory() {
return myDir.getPath();
} /**
* 刷新列表
*/
public void refreshList() { if (this.path.equals(""))
path = "c:\\";
myDir = new File(path); vectorList.clear();
contents = myDir.listFiles();
// 重新装入路径下文件
for (int i = 0; i < contents.length; i++) {
vectorList.add(contents[i]);
}
currentFileView = vectorList.iterator();
} /**
* 移动当前文件集合的指针指到下一个条目
*
* @return 成功返回true,否则false
*/
public boolean nextFile() {
while (currentFileView.hasNext()) {
currentFile = (File) currentFileView.next();
return true;
}
return false;
} /**
* 返回当前指向的文件对象的文件名称
*/
public String getFileName() {
return currentFile.getName();
} /**
* 返回当前指向的文件对象的文件尺寸
*/
public String getFileSize() {
return new Long(currentFile.length()).toString();
} /**
* 返回当前指向的文件对象的最后修改日期
*/
public String getFileTimeStamp() {
return new Date(currentFile.lastModified()).toString();
} /**
* 返回当前指向的文件对象是否是一个文件目录
*/
public boolean getFileType() {
return currentFile.isDirectory();
} /*
* 通过setPath()方法设定要浏览的目录(注意如果操作系统为微软操作系统,每个路径分隔符应写成两个斜杠\),nextFile()方法用来移动列表记录,可以通过getFileName()得到文件或文件夹名称,通过getFileSize()得到文件尺寸,通过getFileTimeStamp()得到文件的最后修改时间,通过getFileType()判断是否是一个文件目录。
* 编写一个test例子测试这个FileViewer类
*/ public ArrayList okpath(){

ReadPath f = new ReadPath();
f.setPath("c:\\aaa\\");
f.refreshList();

ArrayList list = new ArrayList();
while (f.nextFile()) {
list.add(f.path+f.getFileName());
}
return list;
}

/* public static void main(String[] args) {
ReadPath f = new ReadPath();
ArrayList list1 = f.okpath();
for(int j=0;j<list1.size();j++){
System.out.println(list1.get(j));
}
}*/ }

package admit.action;
import java.sql.*;
import java.util.ArrayList;
import java.io.*;
import oracle.sql.*;
public class WriteBlob { public static void main(String[] args) {

try {
DriverManager.registerDriver(new oracle.jdbc.driver.OracleDriver());
Connection conn = DriverManager.getConnection("jdbc:oracle:thin:@192.168.0.100:1521:adminsys","admit","wuyue");
conn.setAutoCommit(false);
ReadPath readPath=new ReadPath();
ArrayList list = readPath.okpath();
/* String ff[]=new String[2];
String fileName = "c://tupian.gif"; */

for(int i=0;i<list.size();i++){
System.out.println("路径名="+list.get(i).toString());
File f = new File(list.get(i).toString());
FileInputStream fin = new FileInputStream(f);

BLOB blob = null; PreparedStatement pstmt = conn.prepareStatement("insert into javatest(name,context) values(?,empty_blob())");
pstmt.setString(1,""+list.get(i).toString()+"");
pstmt.executeUpdate();
pstmt.close(); pstmt = conn.prepareStatement("select context from javatest where name= ? for update");
pstmt.setString(1,""+list.get(i).toString()+"");
ResultSet rset = pstmt.executeQuery();
if (rset.next()) blob = (BLOB) rset.getBlob(1); pstmt = conn.prepareStatement("update javatest set context=? where name=?"); OutputStream out = blob.getBinaryOutputStream(); int count = -1, total = 0;
byte[] data = new byte[(int)fin.available()];
fin.read(data);
out.write(data);
/*
byte[] data = new byte[blob.getBufferSize()]; 另一种实现方法,节省内存
while ((count = fin.read(data)) != -1) {
total += count;
out.write(data, 0, count);
}
*/
fin.close();
out.close(); pstmt.setBlob(1,blob);
pstmt.setString(2,""+list.get(i).toString()+"");
pstmt.executeUpdate();

pstmt.close();
System.out.println("插入成功!!!");
}
conn.commit();
conn.close();

} catch (SQLException e) {
System.err.println(e.getMessage());
e.printStackTrace();
} catch (IOException e) {
System.err.println(e.getMessage());
}
}

}

6. Java二进制反转

public class BinaryReverse
{
private static String s = null;
public static void main(String[] args)
{
BinaryReverse br = new BinaryReverse();
Scanner sc = new Scanner(System.in);
byte tempbyte;
System.out.println("请输入要反转的数字:");
s = sc.nextLine();
tempbyte = Byte.valueOf(s);
tempbyte = br.converse(tempbyte); //开始反转
System.out.println("翻反转后十进制: " + tempbyte);
}
public Byte converse(Byte c)
{
String binaryString = null;
StringBuffer needAdd = new StringBuffer();
binaryString = Integer.toBinaryString(Math.abs(c));
System.out.println(binaryString);
if (s.startsWith("-"))
{
if (binaryString.length() < 8)
{
needAdd.append("1");
}
}
else
{
if (binaryString.length() < 8)
{
needAdd.append("0");
}
}
for (int i = 0; i < (7 - binaryString.length()); i++)
{
needAdd.append("0");
}
binaryString = needAdd.append(binaryString).toString();
System.out.println("原数二进制为: " + binaryString);
String reverseString = needAdd.reverse().toString();
System.out.println("反转后二进制为: " + reverseString);
if (s.startsWith("-"))
{
int i = 0;
for (int j =reverseString.length(),y = 0 ; j > 1 ; j--,y++)
{
i = (int) (i + Integer.valueOf(reverseString.charAt(j-1)+"")*Math.pow(2,y));
}
if (reverseString.charAt(0) == '1')
{
i = -i;
}
return (byte)i;
}
return Byte.valueOf(reverseString,2);
}
}
不要忘了加分哦

7. 求java编程 二进制十进制互相转化

java中有现在的api

10进制转二进制

Integer.toBinaryString(int i);

8. java二进制的数字与字符串互转

import java.nio.charset.StandardCharsets;
import java.util.Scanner;

public class Convert {

public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
String x;
x = sc.next();

String ZERO = "00000000";

byte[] bs = x.getBytes(StandardCharsets.UTF_8); //如果不采用默认的UTF-8格式编码,那么一个汉字相当于两个字节,一个字节就是8个二进制数(8bit)
System.out.println(bs.length+"-------------");
for (byte b : bs) {
String s = Integer.toBinaryString(b);
if (s.length() > 8) {
s = s.substring(s.length() - 8);
} else if (s.length() < 8) {
s = ZERO.substring(s.length()) + s;
}
System.out.println(s);
}

}

}

9. 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));

}

}

}

阅读全文

与cjava二进制互转相关的资料

热点内容
玛卡编程怎么样 浏览:302
怎么编程伺服器编码 浏览:109
什么是机密文件 浏览:258
网站收录量低应该如何解决 浏览:978
飞跃贷app官网 浏览:337
js正则表达式全为整数 浏览:561
在哪里免费下载大数据 浏览:218
linux怎么做视频网站 浏览:949
安卓舰娘登入不进去 浏览:145
ak47龙鳞升级成什么 浏览:256
联通sim卡怎么升级4g 浏览:120
linux大日志文件 浏览:974
u盘照片文件错误 浏览:493
大铁机车车载行车数据有哪些 浏览:440
app网址格式http怎么写 浏览:980
大数据古代的 浏览:199
编程中巡线模式是什么 浏览:991
武汉职业技术学院网络技术 浏览:97
jscompress 浏览:952
怎样清理win10隐形垃圾文件 浏览:973

友情链接