java原碼補(bǔ)碼反碼關(guān)系解析

本文為大家解析了java原碼補(bǔ)碼反碼的關(guān)系,供大家參考,具體內(nèi)容如下

讓客戶滿意是我們工作的目標(biāo),不斷超越客戶的期望值來(lái)自于我們對(duì)這個(gè)行業(yè)的熱愛(ài)。我們立志把好的技術(shù)通過(guò)有效、簡(jiǎn)單的方式提供給客戶,將通過(guò)不懈努力成為客戶在信息化領(lǐng)域值得信任、有價(jià)值的長(zhǎng)期合作伙伴,公司提供的服務(wù)項(xiàng)目有:域名注冊(cè)、虛擬主機(jī)、營(yíng)銷軟件、網(wǎng)站建設(shè)、溧水網(wǎng)站維護(hù)、網(wǎng)站推廣。

原碼:不管源數(shù)據(jù)是十進(jìn)制還是十六進(jìn)制,統(tǒng)統(tǒng)將數(shù)字轉(zhuǎn)成二進(jìn)制形式

反碼:把原碼的二進(jìn)制統(tǒng)統(tǒng)反過(guò)來(lái),0變成1,1變成0

補(bǔ)碼:負(fù)數(shù)的反碼加1,就是負(fù)數(shù)的補(bǔ)碼

例子1:

十進(jìn)制整數(shù) -5,-5的原碼101,-5的反碼1,010,-5的補(bǔ)碼1,011, 
所以,-5的反碼是-2,-5的補(bǔ)碼是-3,其中前面的"1,",表示正數(shù)負(fù)數(shù)

例子2:

十六進(jìn)制  -ff9B  
原碼  11111111111110011011
反碼  00000000000001100100    十進(jìn)制100
補(bǔ)碼  00000000000001100100   十進(jìn)制101
原來(lái)正確的操作流程是,把16進(jìn)制ff9B轉(zhuǎn)成2進(jìn)制,然后直接反碼,再算補(bǔ)碼,就是溫度數(shù)據(jù)

代碼驗(yàn)證:

package comtest.example.admin.znum;
 
/**
 * Created by wrs on 2019/6/5,16:25
 * projectName: Testz
 * packageName: comtest.example.admin.znum
 * 輸入一個(gè)真值(整數(shù))求它的原碼,反碼,補(bǔ)碼
 */
 
 
import java.util.Scanner;
 
 
public class Test {
 public static void main(String[] args) {
 System.out.println("True value--> original code");
 System.out.println("Please enter an integer!!!!!");
 Scanner sc = new Scanner(System.in);
 int value = sc.nextInt();
 StringBuilder syuan = new StringBuilder();
 if (value > 0) {
 String Bvalue = Integer.toBinaryString(value);//將一個(gè)整數(shù)轉(zhuǎn)換成字符串類型的二進(jìn)制數(shù)
 int n = Bvalue.length(); //二進(jìn)制的數(shù)字的個(gè)數(shù)n
 syuan.append("0,");
 syuan.append(Bvalue);
 System.out.println("Original code " + syuan); //原碼
 System.out.println("Complement code " + syuan); //補(bǔ)碼
 System.out.println("Inverse code " + syuan); //反碼
 
// System.out.println("二進(jìn)制數(shù)的n "+n);
 } else if (value < 0) {
 int value2 = Math.abs(value); //負(fù)數(shù)的絕對(duì)值
 int value3 = value2 - 1; //減一求反,求補(bǔ)碼
 String Bvalue = Integer.toBinaryString(value2);
 String BFvalue = Integer.toBinaryString(~value2);
 int n = Bvalue.length();
 String str = BFvalue.substring(BFvalue.length() - n); //截取反碼的后幾個(gè)數(shù)
 syuan.append("1,");
 syuan.append(Bvalue);
 System.out.println("Original code is :" + syuan);
 System.out.println("Inverse code is :1," + str);
 String BBvalue = Integer.toBinaryString(~value3);
 String str3 = BBvalue.substring(BFvalue.length() - n);
 System.out.println("Complement code is :1," + str3);
 } else {
 System.out.println("0 Original code is not only");
 System.out.println("[+0]riginal code 00.....0");
 System.out.println("[-0]riginal code 10.....0");
 System.out.println("--------------------------------------------");
 System.out.println("0 Complement code is not only");
 System.out.println("[+0]和[-0] Complement code 00.....0");
 System.out.println("---------------------------------------------");
 System.out.println("0 Inverse code is not only");
 System.out.println("[+0]Inverse code00..........0");
 System.out.println("[-0]Inverse code11..........1");
 }
 System.out.println("-------------------------------------------------");
 
 }
}

運(yùn)行效果:

-------------------------------------------------
True value--> original code
Please enter an integer!!!!!
-65435
Original code is :1,1111111110011011
Inverse code is :1,0000000001100100
Complement code is :1,0000000001100101
-------------------------------------------------

 以上就是本文的全部?jī)?nèi)容,希望對(duì)大家的學(xué)習(xí)有所幫助,也希望大家多多支持創(chuàng)新互聯(lián)。

文章題目:java原碼補(bǔ)碼反碼關(guān)系解析
轉(zhuǎn)載來(lái)源:http://bm7419.com/article8/igieip.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供網(wǎng)站排名、外貿(mào)建站、網(wǎng)站內(nèi)鏈、網(wǎng)頁(yè)設(shè)計(jì)公司、動(dòng)態(tài)網(wǎng)站

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如需處理請(qǐng)聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來(lái)源: 創(chuàng)新互聯(lián)

成都定制網(wǎng)站網(wǎng)頁(yè)設(shè)計(jì)