學習下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 ...