學習筆記 進製轉換

2022-01-10 12:43:46 字數 1996 閱讀 6807

學習下c語言以及相關的基礎,最近會更新很基礎的知識

常用的進製分別為2進製、10進製(生活常用)、16進製制

二進位制十進位制

十六進製制00

0111

102211

331004

410155

1106

611177

100088

100199

101010a

101111b

110012c

110113d

111014e

111115f

10000

1610

10001

1711

......

...11111111

255ff

1.簡單方法:適用於所有位上均為1的情況

公式: result = 2^n -1

說明:result為十進位制結果,n為1的個數

讀作:2的n次方減1

例:1111有4個1,那麼就有 2^4 - 1 = 16 -1 = 15

2.無符號按位加權:適用於無符號情況(c語言中int型預設有符號)

二進位制8位數,從右往左從0~7寫位權	!(	

公式:`result = n1x2^7 + n2x2^6 + n3x2^5 + n4x2^4 + n5x2^3 + n6x2^2 + n7x2^1 + n8x2^0`

說明:result為結果,n1~n8分別為二進位制數第1到第8位數,2的位權次方

讀作: 每個二進位制數字與2的位權次方之和

舉例:111的前五位均為0,那麼乘後也為0,2的0次方為1

`1x2^2 + 1x2^1 + 1x2^0 = 4+2+1 = 7`

3.有符號按位加權:負數,符號位為1;非負數符號位為0

**其中符號位為0(正數)的情況下與上述方法完全相同。**

**符號位為1的時候(負數),在計算第1位前乘-1**

公式:`result = -n1x2^7 + n2x2^6 + n3x2^5 + n4x2^4 + n5x2^3 + n6x2^2 + n7x2^1 + n8x2^0`

舉例:有符號10000000轉十進位制,首先是有符號並且符號位為1,說明是負數,則有

`-1x2^7 + 0x2^6 + 0x2^5 + 0x2^4 + 0x2^3 + 0x2^2 + 0x2^1 + 0x2^0 = -128`

取餘法

將十進位制數進行多次除二,直到商為0,記錄每次是否被整除,整除記0,不整除記1

將記下的數由下至上即可得到二進位制數

舉例:十進位制18,第一次18/2整除記0,第二次9/2不整除記1,第三次4/2四次整除記0,第四次2/2整除記0,最後一次1/2不整除記1,倒序就是10010

將2進製數從右往左數,每4個一組,通過查表分別換算成16進製制數即可。

將16進製制每一位當作乙個十進位制都轉成4位長度的二進位制,最終組合到一起。當16進製制位是a ~ f,轉換成10進製,a ~ f就是10 ~ 15。

舉個例子:16db

1轉成0001

6轉成0110

d對應10進製的13,轉成1101

b對應10進製的11,轉成1011

組合起來就是 0001 0110 1101 1011

使用bc命令,需要安裝bc

使用echo $((x#y))二進位制轉換十進位制

本文整理自小甲魚的論壇整理而來,原貼見鏈結

學習筆記 排序 進製轉換

摘要 陣列和基本資料型別的內容比較簡單不做詳細的記錄,但是在講解他們的過程中涉及到的排序和進製轉換 拆半查詢比較難所以做特別的筆記 1.排序 i.選擇排序 思想 在陣列中選擇出最大的值放在第一位,然後在剩下的之中查詢最大的放在剩下資料的第一位,直到剩下的資料為空。實現 如下 public stati...

進製轉換部分學習筆記

1 進製轉換 a 十進位制轉二進位制 計算機 物理特性決定的 只能識別二進位制 求餘法 麻煩但準確率高 求權法 速度快,減法運算準確率要高還要記得每個二進位制位上的1所代表的十進位制整數 b 二進位制轉八進位制 八進位制為了儲存記錄二進位制的 11111111 0377 每三個二進位制位對應乙個八進...

進製轉換python python學習 進製轉換

常用的進製包括 二進位制 八進位制 十進位制與十六進製制,它們之間區別在於數運算時是逢幾進一位。1.十進位制轉二進位制 命令 bin a 8print bin a 執行結果 0b1000 計算 二進位制 十進位制 十進位制 二進位制 8 1000 8 2 餘 0 0 1 0 0 0 4 2 餘 0 ...