導航:首頁 > 編程語言 > 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二進制互轉相關的資料

熱點內容
外語電影翻譯成普通話的網站 瀏覽:381
別克怎麼用原廠電腦編程 瀏覽:125
半月談app是什麼意思 瀏覽:788
廣州正大數據恢復 瀏覽:80
什麼app軟體上買汽車減震器 瀏覽:375
在線免費的網站你懂得 瀏覽:611
linux服務加入開機啟動 瀏覽:115
手機百度app如何上傳文件 瀏覽:672
韓劇電影版 瀏覽:887
瀟湘書院sp 瀏覽:324
林正英下載 瀏覽:511
帶著智能手機闖盪異世界 小說 瀏覽:901
男同情愛電影 瀏覽:913
vb監控文件夾 瀏覽:850
台灣丈夫電影 瀏覽:660
戴爾筆記本為什麼連不上無線網路 瀏覽:582
台灣的電影電視劇都用什麼網站 瀏覽:238
米思齊編程土壤濕度感測器怎麼用 瀏覽:208
大寸度愛情電影 瀏覽:213
2015年全球大數據總量 瀏覽:63

友情鏈接