生活中最常用的是十進位制,所以進製轉換總的可以分為兩大類:
第一類:其他進製(如二進位制、十六進製制)轉十進位制;
第二類:十進位制轉其他進製(如二進位制、十六進製制);
1、拋開進製的觀念,數值都可以寫成這種形式:***x.***x
,因為進製的不同,導致每一位代表的數值不同,也就是「進製」和「位置」組成了不同的數值;
2、這裡先明白乙個概念,就是「基數」,多少進製的基數就是多少,如二進位制的基數為2,十進位制的基數為10,十六進製制的基數為16;
3、以小數點為分界線,整數部分從低位到高位順序依次為0,1,2…,小數部分從高位到低位順序依次為-1,-2,-3….
比如對於十進位制數值 101.01,位置順序為
十進位制數值10
1.01
位置順序21
0-1-2代表數值
1x10^2
0x10^1
1x10^0
0x10^-1
1x10^-2
把代表的數值相加起來就得到了十進位制數值101.01,同理,對於其他進製也是相同的原理,通用公式就是
m x radix^p
p表示位置;radix表示進製基數;m表示位置p對應的數字;
總結:其他進製轉為十進位制就是把每一位表示的數值相加起來即可;
十進位制轉其他進製可以分為兩部分:整數部分和小數部分;
整數部分規則:除基數反向取餘
小數部分規則:乘基數正向取整
1、整數部分:
對於整數部分,用被除數反覆除以基數,除第一次外,把得到的商作為下一次除法運算的被除數,每一次得到的餘數就是該進製數值的數值,注意位置是反向的。當商為0的時候就表示運算結束了。
2、小數部分:
對應小數部分,乘以基數得到乙個新的數值,把這個新的數值的整數部分作為該進製的數值,小數部分作為下一次乘法運算的乘數,注意位置是正向的。當小數部分為0或者達到所需要的小數字數之後就表示運算結束了。
iOS開發進製轉換
十進位制轉換為二進位制 param decimal 十進位制數 return 二進位制數 nsstring getbinarybydecimal nsinteger decimal decimal decimal 2 if binary.length 4 0 return binary 將十進位制轉...
iOS藍芽中的進製轉換
最近在忙乙個藍芽專案,在處理藍芽資料的時候,經常遇到進製之間的轉換,藍芽處理的是16進製制 nsdata 而我們習慣的計數方式是10進製,為了節省空間,藍芽也會把16進製制 nsdata 拆成2進製記錄。這裡我們研究下如何在他們之間進行轉換。假設我們要向藍芽傳送0x1b9901這條資料 byte v...
iOS藍芽中的進製轉換
字數1731 閱讀281 喜歡5 最近在忙乙個藍芽專案,在處理藍芽資料的時候,經常遇到進製之間的轉換,藍芽處理的是16進製制 nsdata 而我們習慣的計數方式是10進製,為了節省空間,藍芽也會把16進製制 nsdata 拆成2進製記錄。這裡我們研究下如何在他們之間進行轉換。假設我們要向藍芽傳送0x...