Java中關於十進位制數取反問題解決
首先再此申明:正數在計算機中是用二進位制表示的,負數在計算機中是用補碼錶示的.
十進位制數取反,舉例說明:
比如: 1取反(~1)為-2,-1(~-1)取反為0,首先這問題關係到原碼,反碼,補碼的知識,這裡就不做詳細說明.
(1)以正整數說明:現在對1以一個位元組(1位元組為8位)為例:1=0000 0001,~1表示按位取反=1111 1110因為計算機中儲存的是補碼,解釋一下:這個補碼的值減1,變成反碼 1111 1101,首位為符號位,不變,其餘取反,轉為原碼:1000 0010 = -2;即1取反為-2.
(2)以負整數說明:因為計算機中儲存的是補碼(二進位制),所以我們先求出原碼,轉化為反碼,再加1 為補碼(注意符號位不變),在對補碼取反(符號位根據取反變化)轉化為10進位制即為我們所求結果!現在對-1以一個位元組(1位元組為8位)為例:-1=10000001,反碼為:11111110,補碼為:11111111,在對補碼取反為:00000000,所以轉化為10進製為0 ,即-1取反為0.
大家可以用eclipse或者其他開發工具驗證:如:
int x = 1 ,y = -1, z = 3, k = -3;
System.out.println(~x);//-2
System.out.println(~y);//0
System.out.println(~z);//-4
System.out.println(~k);//2
相關文章
- 關於學習java中的按位取反(~)的問題Java
- java二進位制正數和負數取反Java
- 關於Java中進位制轉換以及位運算問題Java
- Java 16進位制字串 取反Java字串
- 對十進位制數字的按位輸出,取反,並求其位數
- stoi字串轉十進位制數越界問題字串
- 關於十進位制網路
- 十六進位制數轉十進位制
- 二進位制方式解決 power 問題
- 二進位制中為什麼負數是正數取反再加一
- java中二進位制、八進位制、十進位制、十六進位制的轉換Java
- 【進位制轉換】二進位制、十六進位制、十進位制、八進位制對應關係
- 負數的二進位制數問題
- JAVA 二進位制,八進位制,十六進位制,十進位制間進行相互轉換Java
- C++輸入十進位制數,輸出對應二進位制數、十六進位制數C++
- JavaScript 二進位制數字轉換為十進位制JavaScript
- 1474 十進位制轉m進位制+1475 m進位制轉十進位制
- 一看就懂二進位制、八進位制、十六進位制數轉換十進位制
- 如何把十進位制的數輸入用二進位制全加器,並以十進位制輸出
- C++二進位制相容問題及解決方法C++
- n進位制轉十進位制
- 十進位制轉十六進位制
- 演算法趣題:迴文十進位制數演算法
- 牛客網測試題 把十六進位制數字轉換為十進位制數字
- Oracle中十進位制與十六進位制轉換程式Oracle
- Oracle中的二進位制、八進位制、十進位制、十六進位制相互轉換函式Oracle函式
- 關於在BSTR中儲存二進位制資料的若干問題 (轉)
- javascript十進位制數字和二進位制相互轉換JavaScript
- java二進位制運算十進位制(精確運算)Java
- ORACLE使用函式對二進位制、十進位制、十六進位制數互相轉換Oracle函式
- Java中按位取反運算子Java
- 十進位制——二 (八、十六 )進位制
- 45:十進位制到八進位制
- 46:八進位制到十進位制
- Qt進位制轉換(十進位制轉十六進位制)QT
- 【轉帖】Oracle中的二進位制、八進位制、十進位制、十六進位制相互轉換函式Oracle函式
- 二進位制,八進位制,十進位制,十六進位制的相互轉換
- 十進位制轉十六進位制(藍橋杯之前每日一題)每日一題