本文為大家解析了java原碼補碼反碼的關(guān)系,供大家參考,具體內(nèi)容如下
讓客戶滿意是我們工作的目標(biāo),不斷超越客戶的期望值來自于我們對這個行業(yè)的熱愛。我們立志把好的技術(shù)通過有效、簡單的方式提供給客戶,將通過不懈努力成為客戶在信息化領(lǐng)域值得信任、有價值的長期合作伙伴,公司提供的服務(wù)項目有:域名注冊、虛擬主機、營銷軟件、網(wǎng)站建設(shè)、溧水網(wǎng)站維護、網(wǎng)站推廣。
原碼:不管源數(shù)據(jù)是十進制還是十六進制,統(tǒng)統(tǒng)將數(shù)字轉(zhuǎn)成二進制形式
反碼:把原碼的二進制統(tǒng)統(tǒng)反過來,0變成1,1變成0
補碼:負數(shù)的反碼加1,就是負數(shù)的補碼
例子1:
十進制整數(shù) -5,-5的原碼101,-5的反碼1,010,-5的補碼1,011,
所以,-5的反碼是-2,-5的補碼是-3,其中前面的"1,",表示正數(shù)負數(shù)
例子2:
十六進制 -ff9B
原碼 11111111111110011011
反碼 00000000000001100100 十進制100
補碼 00000000000001100100 十進制101
原來正確的操作流程是,把16進制ff9B轉(zhuǎn)成2進制,然后直接反碼,再算補碼,就是溫度數(shù)據(jù)
代碼驗證:
package comtest.example.admin.znum; /** * Created by wrs on 2019/6/5,16:25 * projectName: Testz * packageName: comtest.example.admin.znum * 輸入一個真值(整數(shù))求它的原碼,反碼,補碼 */ 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);//將一個整數(shù)轉(zhuǎn)換成字符串類型的二進制數(shù) int n = Bvalue.length(); //二進制的數(shù)字的個數(shù)n syuan.append("0,"); syuan.append(Bvalue); System.out.println("Original code " + syuan); //原碼 System.out.println("Complement code " + syuan); //補碼 System.out.println("Inverse code " + syuan); //反碼 // System.out.println("二進制數(shù)的n "+n); } else if (value < 0) { int value2 = Math.abs(value); //負數(shù)的絕對值 int value3 = value2 - 1; //減一求反,求補碼 String Bvalue = Integer.toBinaryString(value2); String BFvalue = Integer.toBinaryString(~value2); int n = Bvalue.length(); String str = BFvalue.substring(BFvalue.length() - n); //截取反碼的后幾個數(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("-------------------------------------------------"); } }
運行效果:
------------------------------------------------- True value--> original code Please enter an integer!!!!! -65435 Original code is :1,1111111110011011 Inverse code is :1,0000000001100100 Complement code is :1,0000000001100101 -------------------------------------------------
以上就是本文的全部內(nèi)容,希望對大家的學(xué)習(xí)有所幫助,也希望大家多多支持創(chuàng)新互聯(lián)。
文章題目:java原碼補碼反碼關(guān)系解析
轉(zhuǎn)載來源:http://aaarwkj.com/article8/igieip.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供網(wǎng)站排名、外貿(mào)建站、網(wǎng)站內(nèi)鏈、、網(wǎng)頁設(shè)計公司、動態(tài)網(wǎng)站
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時需注明來源: 創(chuàng)新互聯(lián)