最近偶然間遇到了乙個小問題 是關於16進製製到二進位制的轉換,例如16進製制 的17a 取反加1(按位取反)暫不討論此題,文章最後會有分析。
1. 先看看16進製製到2進製的轉換
16#到2#制的轉換:
a).要想明白16進製製到2#制的轉換那得先搞懂什麼叫16進製制什麼叫二進位制。
十六進製制(英文名稱:hexadecimal),是計算機中資料的一種表示方法。同我們
日常生活
中的表示法不一樣。它由0-9,a-f組成,字母不區分大小寫。與10進製的對應關係是:0-9對應0-9;a-f對應10-15;n進製的數可以用0~(n-1)的數表示,超過9的用字母a-f。 可以看出16進製制是 0 1 2 3 4 5 6 7 8 9 a b c d e f 的表示方法。
二進位制是計算技術中廣泛採用的一種數制。
二進位制數
據是用0和1兩個
數碼來表示的數。它的基數為2,進製規則是「逢二進一」,借位規則是「借一當二」,由18世紀德國數理哲學大師
萊布尼茲
發現。當前的
計算機系統
使用的基本上是
二進位制系統
,資料在
計算機中主要是以補碼的形式儲存的。計算機中的二進位制則是乙個非常微小的開關,用「開」來表示1,「關」來表示0
知道了概念那麼我們現在舉個例子
16進製制的 fd,如何迅速將它轉換為二進位制數呢?
先轉換f:
看到f,我們需知道它是15(可能你還不熟悉a~f這五個數),
然後15如何用8421湊呢?應該是8 + 4 + 2 + 1,所以四位全為1 :1111。
接著轉換d
看到d,知道它是13,13如何用8421湊呢?應該是:8 + 4 + 1,即:1101。
所以,fd轉換為二進位制數,為:1111 1101
2。再看看2進製到16進製制的轉換
二進位制數要轉換為十六進製制,
就是以4位一段,
分別轉換為十六進製制。
如(上行為二制數,下面為對應的十六進製制):
1111 1101 , 1010 0101 , 1001 1011
f d , a 5 , 9 b
3。接下來 我們來看看文章開頭說到的16進製制17a取反加1(按位取反單獨的取反操作)
用我們的方法將17a 分開: 1 我們用2進製表示 0001
7我們用二進位制表示0111
a 為10 我們用二進位制表示 1010
所以17a的二進位制為 0001 0111 1010 按位取反(單獨取反操作與補碼中取反有區別)就是1110 1000 0101加1就是
1110 1000 0110
轉換16進製制就為e86
二進位制 16進製制 補碼
逢2進1的計數規則 格式 編寫時要加0b int 0b 輸出2進製 integer.tobinarystring system.out.println integer.tobinarystring n 輸出10進製 integer.tostring system.out.println intege...
十進位製到二進位制轉換
description 進製轉換是計算機文化的基礎內容。使用程式將進製進行轉換,可以考查你對進製轉換的掌握程度。將乙個任意位數的十進位制數轉換為二進位制數你能夠做到嗎?input 首先是乙個正整數n n 100 表明本題有n個正整數需要轉換。然後是n行資料,每行表示乙個待轉換的正整數k 0 k 65...
1 6(二進位制)
學習機器語言是與計算機溝通的基礎。組合語言通過編譯器轉化成機器語言。問題 返回值存哪,返回值大於四個位元組的存哪,大於四個位元組不用指標存哪 環境用vc6 更好的學習細節 1.對進製的初理解,進製的定義,進製的書寫 2.進製的運算 每乙個進製體系都是完美的,在運算時不需要轉換成十進位制在運算 例如 ...