1樓:滿意請採納喲
(1)如果使用變數名a和b來進行操作的話,則實際上我們使用的是變數a,b中存放的值,而printf函式也恰恰只是想把a,b的值輸出到顯示卡,最終由顯示卡顯示出來,所以不需要加字首&.
(2)scanf之所以需要字首是因為,當使用&a,&b的時候,此時使用的是a,b的地址,而scanf也恰恰是想要把鍵盤快取中的資料,輸入到a,b變數對應的地址中去的。
總結:使用a,編譯器找到的是變數的值,使用&a找到的是變數的地址。printf只要找到值即可,而不需要變數的地址,所以不需&。
2樓:毛毛
1.如果你輸入輸出時不規定進位制,預設為10進位制;
2.輸出時,你已經規定了輸出進位制,也就是說你自己是知道是多少進位制的,所以不會顯示你所謂的字首
3樓:匿名使用者
沒什麼前不字首
%x,%o 這些是控制字元,
當輸出的時候,系統輸出對應的進位制
如果想輸出為0x12,012
就在x,o前面加一個#號
如%#x,%#o
輸出就變為0x12,012
都是一個數,只不過好理解一點
4樓:
%x,%0就已經表明輸出的a和b是八進位制和十六進位制了。
5樓:匿名使用者
您好:(1)如果我們使用變數名a和b來進行操作的話,則實際上我們使用的是變數a,b中存放的值,而printf函式也恰恰只是想把a,b的值輸出到顯示卡,最終由顯示卡顯示出來,所以我們不需要加字首&.
(2)scanf之所以需要字首是因為,當我們使用&a,&b的時候,我們此時使用的是a,b的地址,而scanf也恰恰是想要把鍵盤快取中的資料,輸入到a,b變數對應的地址中去的。
總結:使用a,編譯器找到的是變數的值,使用&a找到的是變數的地址。printf只要找到值即可,而不需要變數的地址,所以不需&。
希望對您有點用,祝您好運!
c語言程式設計,輸入十進位制數輸出十六進位制和八進位制
6樓:園林植物手冊
可以通過下面的公式解決
#include
const int maxn = 128;
const int index8 = 8;
const int index16 =16;
int main()
while(m)
int i;
for(i = cot8 - 1; i >= 0; i--)printf("%d", array8[i]);
puts("");
for(i = cot16 - 1; i >= 0; i--)擴充套件資料:
十進位制轉十六進位制的具體方法:對於整數部分,用被除數反覆除以16,除第一次外,每次除以16均取前一次商的整數部分作被除數並依次記下每次的餘數。另外,所得到的商的最後一位餘數是所求二進位制數的最高位。
對於小數部分,採用連續乘以基數16,並依次取出的整數部分,直至結果的小數部分為0為止。故該法稱「乘基取整法」。
10進位制數轉換成十六進位制數,這是一個連續除以16的過程:把要轉換的數,除以16,得到商和餘數,將商繼續除以16,直到商為0。最後將所有餘數倒序排列,得到數就是轉換結果。
7樓:匿名使用者
可以格式化輸出。
#include
int main()
8樓:匿名使用者
#include
void showbit(int n)
printf("%d",n%2);
}void showoct(int n)
printf("%d",n%8);
}void showhex(int n)
printf("%d",n%16);
}int main()
9樓:著述的鴨子非了
#include
main()
while(n!=0);
for(i--;i>=0;i--)
putchar(s[i]);
} //十進位制轉八進位制 十六進位制方法類似#include
void main()
在c語言中,整數可以用printf函式以二進位制、八進位制、十六進位制輸出嗎?為什麼?
10樓:匿名使用者
我只知道八進位制的格式控制符是o%,十六進位制的格式控制符是x%,至於二進位制嘛你可以程式設計實現輸出!!!
11樓:澤國笑玉
沒有直接列印出二進位制的輸出符號
c語言中十六進位制和八進位制的格式
12樓:鄞染樂煙
16進位制以0x開頭,後面跟數字0~9或字母a~f(小寫也可以)。如:0x2d(16進位制數2d)
8進位制以0開頭,後面跟數字0~7。如:045(8進位制數45)
如果使用printf函式輸出時,可以通過格式數明符來控制輸出格式。
舉例如下:
int x=23;
printf("%x", x); // 以16進位制格式輸出,輸出17;
printf("%o", x); // 以8進位制格式輸出,輸出2。
擴充套件資料:
c語言是國際上廣泛流行的、很有發展前途的計算機高階語言。它適合作為系統描述語言,即可用來編寫系統軟體,也可用來編寫應用軟體。
早期的作業系統等系統軟體主要是用組合語言編寫的(包括
unix作業系統在內)。由於組合語言依賴於計算機硬體,程式的可讀性和可移植性都比較差。為了提高可讀性和可移植性,最好改用高階語言,但一般的高階語言難以實現組合語言的某些功能(組合語言可以直接對硬體進行操作),例如:
對記憶體地址的操作、位操作等)。人們設想能否找到一種既具有一般高階語言特性,又具有低階語言特性的語言,集它們的優點於一身。於是,c語言就在這種情況下應運而生了。
13樓:犁玉蘭翠燕
1、八進位制以0開頭,後面跟數字0~7。如:045(8進位制數45)如果使用printf函式輸出時,可以通過格式數明符來控制輸出格式。例如:int
x=23;printf("%x",
x);//以16進位制格式輸出,輸出17;printf("%o",x);
//以8進位制格式輸出,輸出2。
2、十六進位制以0x開頭,後面跟數字0~9或字母a~f(小寫也可以)。如:0x2d(16進位制數2d)。
拓展資料:
c語言是國際上廣泛流行的、很有發展前途的計算機高階語言。它適合作為系統描述語言,即可用來編寫系統軟體,也可用來編寫應用軟體。早期的作業系統等系統軟體主要是用組合語言編寫的(包括
unix作業系統在內)。
編寫一個程式,要求使用者輸入一個十進位制正整數,然後分別轉換成為二進位制數、八進位制數和十六進位制數輸出
14樓:匿名使用者
樓上的太複雜了吧!c的話直接這樣:
main()
printf("二進位制為%s",x);}
15樓:
這段**是我用c語言寫的,可以實現多個功能的進位制轉換,你參考參考:
#include
#include
#include
void menu();
int bintobex(char str[100],int b);
char * bextobth(int n,int b);
int main()
while(x>12||x<0);
char str[100];
int n;
switch(x)
}return 1;
}void menu()
int bintobex(char str[100],int b)str[i]=0;
len=strlen(str);
for(i=0;i return str;} 16樓:可の獨角 你是用什麼語言的啊?如果沒有直接轉換的話一般方式如下: 對於轉換成n進位制的數s,先讀入數字,判斷它在n^a與n^(a+1)之間,令m=0,然後進行迴圈:m=m*10; s div n^a得到的數值存入m,令n為n mod n^a; a=a-1;直到n為0 include int power int x,int n void main cout 轉化成十進位制是 int power int x,int n 我除錯過了,沒有錯誤,結果正確,我的程式要求輸入的是8位。include char he 105 void main 每次乘16 如果是k進位制就乘... 水領神仙 十進位制數運算時逢十進一。二進位制數運算時逢二進一。八進位制數運算時逢八進一。十六進位制數運算時逢十六進一.注 如 2 表示2的2次方,2 表示2的5次方 1.二進位制計數法的概念 人們在日常生活中和生產實踐中,我們接觸到越來越多的數字,創造了分組計數的制度.而我們的生活中,一般採用了 滿... 要想學漢化就必需要懂得十六進位制!下面是幾種進位制的計算方式 十進位制 有10個基數 0 9 逢十進一 二進位制 有2 個基數 0 1 逢二進一 八進位制 有8個基數 0 7 逢八進一 十六進位制 有16個基數 0 9,a,b,c,d,e,f a 10,b 11,c 12,d 13,e 14,f 1...寫函式,輸入十六進位制數,輸出相應的十進位制數
二進位制,八進位制,十進位制,十六進位制要怎麼弄懂
什麼是「十六進位制」,什麼是十六進位制數的標準表示方法