⑴ java如何把源代碼轉成二進制數
先說說,匯編幾乎和二進制編碼(機器碼是一一對應的),基本上相當於給每個機器指令起了個名字,增加可讀性。
c語言跟匯編的區別相對比較小,基本就是用匯編中的跳轉(JMP,JNE等),比較(CMP)等命令來表示控制、分支、循環等結構,把函數轉換成標簽,用寄存器來存放參數,用棧來保存局部變數等。
C++比c語言多了許多特性,主要是面向對象特性(比如繼承,多態,模板等),當然翻譯成匯編語言的難度也就更大。
而java和C#並不是直接編譯成匯編語言,而是它們專有的中間語言(和匯編比較像,但是優點是與機器無關,可以跨平台,只要在該平台編寫了對應的解釋器,缺點是速度稍慢)
以上是我的理解,可能並不十分准確,僅供參考。
⑵ JAVA中的十進制如何轉換為二進制
十進制轉成二進制Integer.toBinaryString(int i) 。
例子:
public class Test{
public static void main(String args[]){
int i=100;
String binStr=Integer.toBinaryString(i);
String otcStr=Integer.toOctalString(i);
String hexStr=Integer.toHexString(i);
System.out.println(binStr);
⑶ java語言編寫一個程序,從鍵盤輸入一個整數,將其轉換為二進制數並輸出 求大神幫忙
publicclassMain{
publicstaticvoidmain(String[]args){
System.out.println("請輸入整數:");
Scannersc=newScanner(System.in);
Stringinput=sc.nextLine();//讀取輸入字元
try{
inti=Integer.parseInt(input);//string轉int
Stringresult=Integer.toBinaryString(i);//十進制轉二進制
System.out.println("對應二進制數為:");
System.out.println(result);
}catch(Exceptione){//對非法輸入做出處理
System.err.println("請按照要求輸入~");
}
}
}
主要用了Scanner類讀取控制台輸入,以及Integer類進制轉化
ps:我自己手動寫的,為什麼被認證為疑似抄襲QWQ
⑷ 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十進制數轉換成二進制,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 十進制轉二進制!
十進制數轉二進制數的演算法如下:
1. 十進制整數轉換為二進制整數
十進制整數轉換為二進制整數採用"除2取余,逆序排列"法。具體做法是:用2去除十進制整數,可以得到一個商和余數;再用2去除商,又會得到一個商和余
數,如此進行,直到商為零時為止,然後把先得到的余數作為二進制數的低位有效位,後得到的余數作為二進制數的高位有效位,依次排列起來。
2.十進制小數轉換為二進制小數
十進制小數轉換成二進制小數採用"乘2取整,順序排列"法。具體做法是:用2乘十進制小數,可以得到積,將積的整數部分取出,再用2乘餘下的小數部分,又
得到一個積,再將積的整數部分取出,如此進行,直到積中的小數部分為零,或者達到所要求的精度為止。然後把取出的整數部分按順序排列起來,先取的整數作為
二進制小數的高位有效位,後取的整數作為低位有效位。
下面就給出根據十進制數轉二進制數的演算法所寫的一段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);
/*
* 本來利用上面的Integer.toBinaryString(int)就可以得到整數部分的二進制結果,
* 但為了展示十進制轉二進制的演算法,現選擇以下程序來進行轉換
*/
String result = "";
long inte = (long)d;
int index = 0;
while(true){
result += inte%2;
inte = inte/2;
index++;
if(index%4 == 0){
result+=" ";
}
if(inte==0){
while(index%4!=0){
result+="0";
index++;
}
break;
}
}
char[] c = result.toCharArray();
char[] cc = new char[c.length];
for(int i=c.length; i>0; i--){
cc[cc.length-i] = c[i-1];
}
return new String(cc);
}
/**
* 十進制小數部分轉二進制
* @param d 十進制數
* @return 十進制小數部分轉換成二進制小數的字元串
*/
public String decimal2BinaryStr_Deci(double d){
return decimal2BinaryStr_Deci(d, 0);
}
/**
* 十進制小數部分轉二進制
* @param d 十進制數
* @param scale 小數部分精確的位數
* @return 十進制小數部分轉換成二進制小數的字元串
*/
public String decimal2BinaryStr_Deci(double d, int scale){
double deci = sub(d,(long)d);
if(deci==0){
return "";
}
//為了防止程序因所轉換的數據轉換後的結果是一個無限循環的二進制小數,因此給其一個默認的精確度
if(scale==0){
scale = (String.valueOf(deci).length()-2)*4;
}
int index = 0;
StringBuilder inteStr = new StringBuilder();
double tempD = 0.d;
while(true){
if(deci==0 || index==scale){
while(index%4!=0){
inteStr.append("0");
index++;
}
break;
}
if(index==0){
inteStr.append(".");
}
tempD = deci*2;
inteStr.append((int)tempD);
deci = sub(tempD ,(int)tempD);
index++;
if(index%4 == 0){
inteStr.append(" ");
}
}
return inteStr.toString();
}
/**
* 提供精確的減法運算。
* @param v1 被減數
* @param v2 減數
* @return 兩個參數的差
*/
public static double sub(double v1, double v2) {
BigDecimal b1 = new BigDecimal(Double.toString(v1));
BigDecimal b2 = new BigDecimal(Double.toString(v2));
return b1.subtract(b2).doubleValue();
}
}
例如將十進制數1234.5轉成二進制數為:0100 1101 0010.1000
⑺ 用java寫一個 十進制轉為二進制的程序
將十進制轉換成二進制的演算法如下:
1.給定一個數;
2.根據十進制轉換二進制的思想:把這個數除以2若為單數則為1,為偶數則為0,直到最後一個數為1為止。所以我們要做的就是用你給定的這個數除以2,如果結果為奇數則r=1,否則r=0;如此循環下去,直到這個數〉=1。
3.然後把r的值送到一個數組裡面。最後把這個數組裡面的內容從後面列印出來就可以了。
import java.util.Scanner;
public class Hi {
public static void main(String[] args) {
Scanner sc=new Scanner(System.in);
System.out.println("請輸入一個十進制需要轉換為二進制的正整數");
int n=sc.nextInt();
int r;
int i=0;
int[] a=new int[20];
do{
if(n%2==1)
r=1;
else
r=0;
a[i]=r;
n/=2;
i++;
}while(n>0);
System.out.println("十進制轉換為二進制後:");
for(int j=i-1;j>=0;j--){
System.out.print(a[j]);
}
}
}
⑻ 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();
}
}