A. 用c語言編程列印十進制數1到256的二進制、八進制和十六進制數值表
以下程序在TURBOC上調試通過:
#include <stdio.h>
#include <limits.h>
void bit_print(int a)
{
int i;
int n;
unsigned long int mask;
n=sizeof(a)*CHAR_BIT;
mask=0x8000;
for (i=1; i<=n; ++i) {
putchar(((a&mask)==0)?'0':'1');
mask>>=1;
if (i%CHAR_BIT==0&&i<n) {
putchar(' ');
}
}
}
int main(void)
{
int i;
for (i=1; i<=256; i++) {
printf("%d\t",i);
bit_print(i);
putchar('\t');
printf("%o\t%X\n",i,i);
}
return 0;
}
輸出內容為:
1 00000000 00000001 1 1
2 00000000 00000010 2 2
3 00000000 00000011 3 3
4 00000000 00000100 4 4
5 00000000 00000101 5 5
6 00000000 00000110 6 6
7 00000000 00000111 7 7
8 00000000 00001000 10 8
9 00000000 00001001 11 9
10 00000000 00001010 12 A
11 00000000 00001011 13 B
12 00000000 00001100 14 C
13 00000000 00001101 15 D
14 00000000 00001110 16 E
15 00000000 00001111 17 F
16 00000000 00010000 20 10
17 00000000 00010001 21 11
18 00000000 00010010 22 12
19 00000000 00010011 23 13
20 00000000 00010100 24 14
21 00000000 00010101 25 15
22 00000000 00010110 26 16
23 00000000 00010111 27 17
24 00000000 00011000 30 18
25 00000000 00011001 31 19
26 00000000 00011010 32 1A
27 00000000 00011011 33 1B
28 00000000 00011100 34 1C
…………
208 00000000 11010000 320 D0
209 00000000 11010001 321 D1
210 00000000 11010010 322 D2
211 00000000 11010011 323 D3
212 00000000 11010100 324 D4
213 00000000 11010101 325 D5
214 00000000 11010110 326 D6
215 00000000 11010111 327 D7
216 00000000 11011000 330 D8
217 00000000 11011001 331 D9
218 00000000 11011010 332 DA
219 00000000 11011011 333 DB
220 00000000 11011100 334 DC
221 00000000 11011101 335 DD
222 00000000 11011110 336 DE
223 00000000 11011111 337 DF
224 00000000 11100000 340 E0
225 00000000 11100001 341 E1
226 00000000 11100010 342 E2
227 00000000 11100011 343 E3
228 00000000 11100100 344 E4
229 00000000 11100101 345 E5
230 00000000 11100110 346 E6
231 00000000 11100111 347 E7
232 00000000 11101000 350 E8
233 00000000 11101001 351 E9
234 00000000 11101010 352 EA
235 00000000 11101011 353 EB
236 00000000 11101100 354 EC
237 00000000 11101101 355 ED
238 00000000 11101110 356 EE
239 00000000 11101111 357 EF
240 00000000 11110000 360 F0
241 00000000 11110001 361 F1
242 00000000 11110010 362 F2
243 00000000 11110011 363 F3
244 00000000 11110100 364 F4
245 00000000 11110101 365 F5
246 00000000 11110110 366 F6
247 00000000 11110111 367 F7
248 00000000 11111000 370 F8
249 00000000 11111001 371 F9
250 00000000 11111010 372 FA
251 00000000 11111011 373 FB
252 00000000 11111100 374 FC
253 00000000 11111101 375 FD
254 00000000 11111110 376 FE
255 00000000 11111111 377 FF
256 00000001 00000000 400 100
B. C語言中的整數可用哪幾種進製表示如何表示
C語言只有十進制和十六進制,平常用的一般都是十進制,十六進制是以0x開頭的,其他進制可以通過itoa函數很容易轉換得到,頭文件是stdlib.h,itoa有三個參數,第一個參數是十進制的數,第二個參數是用來存儲轉換後的內容,第三個參數就是想轉換的進制類型,比如二進制就寫2
C. C語言中八進制和16進制怎麼表示
一、八進制由 0~7 八個數字組成,使用時必須以0開頭(注意是數字 0,不是字母 o),例如:
//合法的八進制數
int a = 015; //換算成十進制為 13
int b = -0101; //換算成十進制為 -65
int c = 0177777; //換算成十進制為 65535
//非法的八進制
int m = 256; //無前綴 0,相當於十進制
int n = 03A2; //A不是有效的八進制數字
二、十六進制由數字 0~9、字母 A~F 或 a~f(不區分大小寫)組成,使用時必須以0x或0X(不區分大小寫)開頭,例如:
//合法的十六進制int a = 0X2A; //換算成十進制為 42
int b = -0XA0; //換算成十進制為 -160
int c = 0xffff; //換算成十進制為 65535
//非法的十六進制
int m = 5A; //沒有前綴 0X,是一個無效數字
int n = 0X3H; //H不是有效的十六進制數字
二進制化為八進制
整數部份從最低有效位開始,以3位一組,最高有效位不足3位時以0補齊,每一組均可轉換成一個八進制的值,轉換完畢就是八進制的整數。
小數部份從最高有效位開始,以3位一組,最低有效位不足3位時以0補齊,每一組均可轉換成一個八進制的值,轉換完畢就是八進制的小數。
例:(11001111.01111)2 = (011 001 111.011 110)2 = (317.36)8
以上內容參考:網路-八進制
D. 請用c語言編寫一個程序,列印一個與十進制數(從1到256) 相等的二進制數,八進制數和十六進制數表
八進制和十六進制可以直接用%o和%x輸出。
二進制這里自己弄了下。
#include<stdio.h>
intmain(intargc,char*argv[])
{
inti,j,n;
chartwo[9]={0};
for(i=1;i<=255;i++)
{
/*十進制*/
printf("%4d",i);
/*二進制*/
for(j=7,n=i;j>=0;j--,n>>=1)
{
two[j]=(n&1)+'0';
}
printf("%9s",two);
/*八進制*/
printf("%4o",i);
/*十六進制*/
printf("%3x ",i);
}
return0;
}
E. c語言中各種進制的轉換規矩 詳細些 最好是計算過程寫出來
代碼如下:(可以輸出20位數)#include<stdio.h>
void transfer(int m,int change)
{
int aa[20],j,saveM=m;
for(j=0;m!=0;j++)
{
aa[j]=m%change;
m=m/change;
}
printf("十進制數%d的%d進制形式是:\n",saveM,change);
for(;j!=0;j--)
printf("%d ",aa[j-1]); //注意這空是填aa[j-1],而不是aa[j],因為上面那個循環進行到最後一步時,j++還是會運行一次,但是此時並沒有給aa[j]賦值,因為循環結束
}
main()
{
int n,c;
printf("請輸入一個整數\n");
scanf("%d",&n);
printf("該整數是十進制數,你想將它轉化成幾進制數呢?\n");
getchar();
scanf("%d",&c);
transfer(n,c);
} 功能說明:該函數可以將任意的十進制數轉化成任意的N進制數。轉化後的結果,每兩位數之間用一個空格隔開。
希望可以幫到您,謝謝!
F. c語言中十六進制和八進制的格式
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。
(6)c語言各種進製表格擴展閱讀:
C語言是國際上廣泛流行的、很有發展前途的計算機高級語言。它適合作為系統描述語言,即可用來編寫系統軟體,也可用來編寫應用軟體。
早期的操作系統等系統軟體主要是用匯編語言編寫的(包括
UNIX操作系統在內)。由於匯編語言依賴於計算機硬體,程序的可讀性和可移植性都比較差。為了提高可讀性和可移植性,最好改用高級語言,但一般的高級語言難以實現匯編語言的某些功能(匯編語言可以直接對硬體進行操作),例如:對內存地址的操作、位操作等)。人們設想能否找到一種既具有一般高級語言特性,又具有低級語言特性的語言,集它們的優點於一身。於是,C語言就在這種情況下應運而生了。
G. c語言中的整數可用哪幾種進製表示如何表示
十六進制:0x開頭,如0x0a
八進制:0開頭,如072
十進制:無前綴,如123
H. C語言中16進制的表示方法
16進制以0x開頭,後面跟數字0~9或字母A~F(小寫也可以),如:0x2D(16進制數2D)