java原碼補(bǔ)碼反碼關(guān)系解析
本文為大家解析了java原碼補(bǔ)碼反碼的關(guān)系,供大家參考,具體內(nèi)容如下
原碼:不管源數(shù)據(jù)是十進(jìn)制還是十六進(jìn)制,統(tǒng)統(tǒng)將數(shù)字轉(zhuǎn)成二進(jìn)制形式
反碼:把原碼的二進(jìn)制統(tǒng)統(tǒng)反過來(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í)有所幫助,也希望大家多多支持腳本之家。
相關(guān)文章
Scala數(shù)據(jù)庫(kù)連接池的簡(jiǎn)單實(shí)現(xiàn)
本文主要介紹了Scala數(shù)據(jù)庫(kù)連接池的簡(jiǎn)單實(shí)現(xiàn),文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2023-02-02合成聚合復(fù)用原則_動(dòng)力節(jié)點(diǎn)Java學(xué)院整理
這篇文章主要介紹了合成聚合復(fù)用原則,小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過來(lái)看看吧2017-08-08Spring Data JPA帶條件分頁(yè)查詢實(shí)現(xiàn)原理
這篇文章主要介紹了Spring Data JPA帶條件分頁(yè)查詢實(shí)現(xiàn)原理,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下2020-05-05Java實(shí)現(xiàn)精準(zhǔn)Excel數(shù)據(jù)排序的方法詳解
在數(shù)據(jù)處理或者數(shù)據(jù)分析的場(chǎng)景中,需要對(duì)已有的數(shù)據(jù)進(jìn)行排序,在Excel中可以通過排序功能進(jìn)行整理數(shù)據(jù),而在Java中,則可以借助Excel表格插件對(duì)數(shù)據(jù)進(jìn)行批量排序,下面我們就來(lái)學(xué)習(xí)一下常見的數(shù)據(jù)排序方法吧2023-10-10Spring中的@Scheduled定時(shí)任務(wù)注解詳解
這篇文章主要介紹了Spring中的@Scheduled定時(shí)任務(wù)注解詳解,要使用@Scheduled注解,首先需要在啟動(dòng)類添加@EnableScheduling,啟用Spring的計(jì)劃任務(wù)執(zhí)行功能,這樣可以在容器中的任何Spring管理的bean上檢測(cè)@Scheduled注解,執(zhí)行計(jì)劃任務(wù),需要的朋友可以參考下2023-09-09idea快速找到項(xiàng)目中對(duì)應(yīng)的類圖文詳解(包括源碼)
用IDEA開發(fā)Java項(xiàng)目時(shí)經(jīng)常會(huì)使用到各種快捷鍵,其中搜索是最常用的之一,下面這篇文章主要給大家介紹了關(guān)于idea如何快速找到項(xiàng)目中對(duì)應(yīng)的類(包括源碼)的相關(guān)資料,文中通過圖文介紹的非常詳細(xì),需要的朋友可以參考下2023-06-06