真实的国产乱ⅩXXX66竹夫人,五月香六月婷婷激情综合,亚洲日本VA一区二区三区,亚洲精品一区二区三区麻豆

成都創(chuàng)新互聯(lián)網(wǎng)站制作重慶分公司

java二進制加法代碼 java二進制求和

java 十進制轉(zhuǎn)二進制!

十進制數(shù)轉(zhuǎn)二進制數(shù)的算法如下:

創(chuàng)新互聯(lián)公司堅持“要么做到,要么別承諾”的工作理念,服務(wù)領(lǐng)域包括:做網(wǎng)站、成都網(wǎng)站設(shè)計、企業(yè)官網(wǎng)、英文網(wǎng)站、手機端網(wǎng)站、網(wǎng)站推廣等服務(wù),滿足客戶于互聯(lián)網(wǎng)時代的礦區(qū)網(wǎng)站設(shè)計、移動媒體設(shè)計的需求,幫助企業(yè)找到有效的互聯(lián)網(wǎng)解決方案。努力成為您成熟可靠的網(wǎng)絡(luò)建設(shè)合作伙伴!

1. 十進制整數(shù)轉(zhuǎn)換為二進制整數(shù)

十進制整數(shù)轉(zhuǎn)換為二進制整數(shù)采用"除2取余,逆序排列"法。具體做法是:用2去除十進制整數(shù),可以得到一個商和余數(shù);再用2去除商,又會得到一個商和余

數(shù),如此進行,直到商為零時為止,然后把先得到的余數(shù)作為二進制數(shù)的低位有效位,后得到的余數(shù)作為二進制數(shù)的高位有效位,依次排列起來。

2.十進制小數(shù)轉(zhuǎn)換為二進制小數(shù)

十進制小數(shù)轉(zhuǎn)換成二進制小數(shù)采用"乘2取整,順序排列"法。具體做法是:用2乘十進制小數(shù),可以得到積,將積的整數(shù)部分取出,再用2乘余下的小數(shù)部分,又

得到一個積,再將積的整數(shù)部分取出,如此進行,直到積中的小數(shù)部分為零,或者達到所要求的精度為止。然后把取出的整數(shù)部分按順序排列起來,先取的整數(shù)作為

二進制小數(shù)的高位有效位,后取的整數(shù)作為低位有效位。

下面就給出根據(jù)十進制數(shù)轉(zhuǎn)二進制數(shù)的算法所寫的一段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("十進制數(shù)"+d+"轉(zhuǎn)成二進制數(shù)為:"+s);

}

/**

* 十進制數(shù)轉(zhuǎn)二進制數(shù)

* @param d 十進制數(shù)

* @return 十進制數(shù)轉(zhuǎn)換成二進制的字符串

*/

public String decimal2BinaryStr(double d){

String result = decimal2BinaryStr_Inte(d);

result += decimal2BinaryStr_Deci(d);

return result;

}

/**

* 十進制整數(shù)部分轉(zhuǎn)二進制數(shù)

* @param d 十進制數(shù)

* @return 十進制整數(shù)部分轉(zhuǎn)換成二進制的字符串

*/

public String decimal2BinaryStr_Inte(double d){

// return Integer.toBinaryString((int)d);

/*

* 本來利用上面的Integer.toBinaryString(int)就可以得到整數(shù)部分的二進制結(jié)果,

* 但為了展示十進制轉(zhuǎn)二進制的算法,現(xiàn)選擇以下程序來進行轉(zhuǎn)換

*/

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; i0; i--){

cc[cc.length-i] = c[i-1];

}

return new String(cc);

}

/**

* 十進制小數(shù)部分轉(zhuǎn)二進制

* @param d 十進制數(shù)

* @return 十進制小數(shù)部分轉(zhuǎn)換成二進制小數(shù)的字符串

*/

public String decimal2BinaryStr_Deci(double d){

return decimal2BinaryStr_Deci(d, 0);

}

/**

* 十進制小數(shù)部分轉(zhuǎn)二進制

* @param d 十進制數(shù)

* @param scale 小數(shù)部分精確的位數(shù)

* @return 十進制小數(shù)部分轉(zhuǎn)換成二進制小數(shù)的字符串

*/

public String decimal2BinaryStr_Deci(double d, int scale){

double deci = sub(d,(long)d);

if(deci==0){

return "";

}

//為了防止程序因所轉(zhuǎn)換的數(shù)據(jù)轉(zhuǎn)換后的結(jié)果是一個無限循環(huán)的二進制小數(shù),因此給其一個默認的精確度

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 被減數(shù)

* @param v2 減數(shù)

* @return 兩個參數(shù)的差

*/

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();

}

}

例如將十進制數(shù)1234.5轉(zhuǎn)成二進制數(shù)為:0100 1101 0010.1000

二進制相加 怎么用java實現(xiàn)

兩個數(shù)相加,會得到一個結(jié)果,和一個進位的結(jié)果,

然后將這個進位的結(jié)果后面加0補位,然后再和這個結(jié)果相加。如此遞歸,知道進位全部是0為

public class $ {

public static void main(String[] args) {

String s0 = "100";// 十進制4

StringBuffer result = new StringBuffer();

StringBuffer jinwei = new StringBuffer();

System.out.println(test(result, jinwei, ));

}

private static String test(StringBuffer result, StringBuffer jinwei, String s0, String {

// 沒有進位了就退出

if (s0.length() 0 s0.indexOf("1") 0) {

return s1;

}

//位數(shù)補齊

int len0 = s0.length();

int len1 = s1.length();

int minLen = Math.max(len0, len1);

s0 = buqi(len0, minLen) + s0;

s1 = buqi(len1, minLen) + s1;

for (int i = s0.length() - 1; i = 0; i--) {

String str0 = s0.substring(i, i + 1);

String str1 = s1.substring(i, i + 1);

add(result, jinwei, str0, str1);

}

String tmpJinwei = jinwei.reverse().toString() + "0";

jinwei.delete(0, jinwei.length());

String tmpResult = result.reverse().toString();

result.delete(0, result.length());

return test(result, jinwei, tmpJinwei, tmpResult);

}

private static void add(StringBuffer result, StringBuffer jinwei, String str0, String str1) {

// 00相加為0,不進位

if ("0".equals(str0) "0".equals(str1)) {

result.append("0");

jinwei.append("0");

return;

}

// 11相加為0,進位1

if ("1".equals(str0) "1".equals(str1)) {

result.append("0");

jinwei.append("1");

return;

}

// 其他情況,相加為1,不進位

result.append("1");

jinwei.append("0");

}

private static String buqi(int len0, int minLen) {

String tmp = "";

for (int i = len0; i minLen; i++) {

tmp += "0";

}

return tmp;

}

}

跪求“java中二進制怎么表示”

java中二進制的表示:

1、Java中定義兩個數(shù),然后分別打印出它們的二進制表示(例如7和-7):

System.out.println("Java二進制7:?"+Integer.toBinaryString(7));

System.out.println("Java二進制-7:?"+Integer.toBinaryString(-7));

輸出:

Java二進制7: 111

Java二進制-7: 11111111111111111111111111111001

7的二進制就是111

-7轉(zhuǎn)化二進制的過程:

(1)把-7轉(zhuǎn)化成7,二進制是 111

(2)Java中對于不滿32位的int二進制自動補齊,所以變成了 (29個0)111

(3)然后取反 ?(29個1)000

(4)然后加1 (29個1)001

擴展資料:

c語言中二進制的轉(zhuǎn)換:

用函數(shù)轉(zhuǎn)換itoa(值,數(shù)組名,進制)

#includestdio.h

#includestdlib.h

void?main()

{

char str[8];

int?i=8;

itoa(i,str,2);

printf("%s",str);

}

參考資料:

java二進制——百度百科


分享題目:java二進制加法代碼 java二進制求和
當(dāng)前鏈接:http://weahome.cn/article/doiidoo.html

其他資訊

在線咨詢

微信咨詢

電話咨詢

028-86922220(工作日)

18980820575(7×24)

提交需求

返回頂部