c++**如何實現不同進製的轉化
以十進位制與八進位制和轉換為例
遞迴方法
#
include
using
namespace std;
intsb
(int n)
intmain()
迴圈方法#
include
using
namespace std;
long
long sum=
0,b=
1,x=1;
int a;
intmain()
cout<
return0;
}
10轉16進製制10轉16進製制
#include
using
namespace std;
char
exchange
(int n)
}int
main()
char a[i]
;while
(note/
16!=0)
a[i]
=exchange
(note)
;for
(int j=i;j>=
0;j--
)cout<
return0;
}
進製的產生一定是為了更好的表達或記錄。
在我們的生活中表達某個數的時候,比如成績多少,這樣的數都是十進位制數。十進位制數有10個數0,1,2,3,4,5,6,7,8,9。
十進位制「逢十進一」這個大家都知道,生活中也有其它進製,比如時間的分秒數是60進製,角度是360度進製。
而在計算機裡使用二進位制的,因為計算機只能表示兩個狀態0,1,(0好比開關關,1可以表示成開關接通)。所以計算機只能「認識」二進位制數。二進位制「逢二進一」。
大家可能也知道還有八進位制、十六進製制,哪為什麼有二進位制還要其它進製?
可以想下,人類用十進位制,計算機用二進位制,但如果想要更好的去研究和理解計算機的運作時,光用二進位制表達和描述會非常不直觀、不方便。因為二進位制太長了,比如乙個整數(十進位制),32位機中二進位制有32位。如果用十六進製制就只要8位,表達和描述上會方便很多,互轉時也可以直接轉,不像十進位制哪樣複雜。(因為8,16,是2的3,4次方)
bin 二進位制 oct八進位制 dec十進位制 hex十六進製制
十進位制轉二進位制使用短除法:
二進位制轉十進位制位權展開法:
二進位制轉八進位制:將3位轉為1位
八進位制轉二進位制:變1位為3位
二進位制轉十六進製制:4位轉1位
十六進製制轉二進位制:1位變4位
舉個栗子吧
關於進製之間的轉化問題
一 十進位制與二進位制之間的轉換 1 十進位制轉換為二進位制,分為整數部分和小數部分 整數部分 方法 除2取餘法,即每次將整數部分除以2,餘數為該位權上的數,而商繼續除以2,餘數又為上乙個位權上的數,這個步驟一直持續下去,直到商為0為止,最後讀數時候,從最後乙個餘數讀起,一直到最前面的乙個餘數。下面...
進製以及進製之間的轉換
常用進製 下面例子中是舉數字10在以下這些進製中是如何表示的 二進位制 在計算機中使用,取值範圍 0 和 1,以 0b 開頭,如 0b10 八進位制 取值範圍0 7,以0開頭,如 010 十進位制 在日常生活中使用,取值範圍0 9 如 10 十六進製制 取值範圍 0 9 和 a f,以0x開頭,如 ...
c 進製轉化
轉換為十進位制 convert.toint32 值字串 字串的進製 十進位制轉為其他進製 convert.tostring 十進位制值,要轉換的進製 using system using system.linq using system.net.security 十進位制整數轉換為其他進製 stat...