1樓:金色潛鳥
計算機內都bai是2進位制,輸入輸出時才體du現出 其它進zhi制。
#include
#include
using namespace std;
main()
順便說一下:c 語言輸入輸出 %x 格式 是 16 進位制, %o 是 8 進位制。
2樓:匿名使用者
你是說輸出麼, 還是從copy16進位制的數字字串轉換成8進位制的字串?
如果是後者你可以用
char* itoa(int v, char *buf, int radix);
v 要轉換的值, buf 結果緩衝, radix 進位制如把 0x124231aaa轉換為8進位制, 可以這樣char res[100];
itoa(0x124231aaa, res, 8);
就可以了
如果是要你們自己寫過程, 那16->8進位制用移位最簡單了
3樓:匿名使用者
int i=1000;
cout<中
c++中怎樣完成將一個十進位制轉換成八進位制、十六進位制數的功能
4樓:yesyes科
1、c語言列印八進位制是通過%o,(百分號和小寫字母o組成)列印輸出的,首先八進位制017的列印輸出,實現以下**段,**段是先儲存一個8進位制的數字,然後通過%o的方式輸出八進位制。
2、**段編譯通過後執行檢視結果,可以看到結果就是17,八進位制列印出八進位制,不會有什麼變化。
3、十進位制表示的數字以八進位制的格式列印出來看看結果,首先通過計算機得到十進位制的數字20等於八進位制的24,具體如下圖所示,左邊八進位制,右邊十進位制。
4、然後實現以下**段,十進位制的數字20以八進位制的格式進行列印輸出,**段是先儲存一個十進位制的數字20,然後通過%o的方式輸出八進位制。
5、**段編譯通過後執行檢視結果,可以看到十進位制數字20以八進位制的格式輸出的結果是24,和通過計算機得出的結果是一致的。
6、十六進位制表示的數字以八進位制的格式列印出來的結果,首先通過計算機得到十六進位制的數字0xaf等於八進位制的257。
7、然後實現以下**段,十六進位制的數字0xaf,以八進位制的格式進行列印輸出。**段是先儲存一個十六進位制的數字0xaf,然後通過%o的方式輸出八進位制。
5樓:匿名使用者
c++中,可通過itoa()函式,方便的將10進位制數轉換成2 8 16等進位制數,並轉存到字串中。
如果僅是想以8或16進位制格式輸出10進位制數,則可以使用cout的格式化輸出引數oct和hex完成資料輸出。(缺陷:不支援二進位制格式輸出)
參考**:
相關函式說明:
char *itoa( int value, char *string,int radix);
說明:value:欲轉換的資料。
string:目標字串的地址。
radix:轉換後的進位制數,可以是2 8 10 16進位制等。
特別說明:itoa 並不是一個標準的c函式,它是windows特有的,如果要寫跨平臺的程式,可以用sprintf(),用法與printf()相同。
6樓:匿名使用者
//十進位制轉換為任意進位制
#include
using namespace std;
int main()
for(int k=m;k>=1;k--)//輸出轉換後的序列{ if(s[k]>=10) //若為十六進位制等則輸出相對應的字母cout<<(char)(s[k]+55);
else //否則直接輸出數字cout<
7樓:
int i=1000;
cout<
C語言八進位制十六進位制真值問題
關於八進位制和十六進位制的正負性,有如下幾種情況 1.如果直接使用,都認為是正值,比如 printf d 2 0x8008 輸出 65552 2.如果將其賦值給有符號變數,則 化為二進位制後 最高位為1表示負數,為0表示正。比如 short int y 0x8008 printf d y 輸出 32...
二進位制轉換十進位制,八進位制,十六進位制
在數制中,還有一個規則,這就是,n進位制必須是逢n進一。對於多位數,處在某一位上的 l 所表示的數值的大小,稱為該位的位權。例如十進位制第2位的位權為10,第3位的位權為100 而二進位制第2位的位權為2,第3位的位權為4,對於 n進位制數,整數部分第 i位的位權為ni 1,而小數部分第j位的位權為...
二進位制 八進位制 以及十六進位制有什麼區別
計算機中常用的十六進位制是逢16進1的記數制,採用數字0 9和字母a f共16個記數符號,若符號與十進位制的數的對應關係 計算機中常用的進位制 二進位制 八進位制 十六進位制 進位制 數 字 進位方法 十進位制 0 1 2 3 4 5 6 7 8 9 逢十進一 二進位制 0 1 逢二進一 八進位制 ...