Ⅰ 在c語言中整型常數可用十進制、八進制和______進制三種數製表示。
在C語言中整型常數可用十進制、八進制和十六進制三種數製表示。
1、八進制整常數必須以0開頭,即以0作為八進制數的前綴。數碼取值為0~7。八進制數通常是無符號數。
(1)以下各數是合法的八進制數:
015、0101、0135777。
(2)以下各數不是合法的八進制數:
252(無前綴0)、0386(包含了非八進制數碼)、-0127。
2、十六進制整常數的前綴為0X或0x。其數碼取值為0~9,A~F或a~f。
(1)以下各數是合法的十六進制整常數:
0X2A(十進制為42)、0XA0 (十進制為160)、0XFFFF (十進制為65535)。
(2)以下各數不是合法的十六進制整常數:
5A (無前綴0X)、0X3H (含有非十六進制數碼)。
3、十進制整常數沒有前綴。其數碼為0~9。
(1)以下各數是合法的十進制整常數:
235、-528、65535、1627。
(2)以下各數不是合法的十進制整常數:
023 (不能有前導0)、23D (含有非十進制數碼)。
(1)c語言八進制擴展閱讀:
C語言的數據類型包括:整型、字元型、實型或浮點型(單精度和雙精度)、枚舉類型、數組類型、結構體類型、共用體類型、指針類型和空類型。
C語言包含有各種控制語句僅有9種,關鍵字也只有32個,程序的編寫要求不嚴格且多以小寫字母為主,對許多不必要的部分進行了精簡。
實際上,語句構成與硬體有關聯的較少,且C語言本身不提供與硬體相關的輸入輸出、文件管理等功能,如需此類功能,需要通過配合編譯系統所支持的各類庫進行編程,故C語言擁有非常簡潔的編譯系統。
C語言的運算非常靈活,功能十分豐富,運算種類遠多於其它程序設計語言。在表達式方面較其它程序語言更為簡潔,如自加、自減、逗號運算和三目運算使表達式更為簡單,但初學者往往會覺的這種表達式難讀,關鍵原因就是對運算符和運算順序理解不透不全。當多種不同運算組成一個運算表達式,即一個運算式中出現多種運算符時,運算的優先順序和結合規則顯得十分重要。
Ⅱ C語言 十進制數轉換八進制 演算法
方法一:直接使用控制字元串 %o 八進制%x
方法二:
求余來算,比如求十進制數 x(x>100) 的8進制,先通過 x%8 可以得到個位(末位)上的數,當十進制數等於8時,必然會進位,求余的結果正好是不能進位的部分,x=x/8(這就像位移,x的8進制數向右移了一位),這樣已經求出來的 個位 位移後沒有了,原來的十位變成了個位,繼續把得到的x按上面的方式求末位,就能求出來十位,按照這種方式得到的 8進制數 是反的(先得到個位,再十位。。。),這樣很適合放到棧中,取得時候又會反過來,偽代碼可以這樣寫:
while(x){
printf("%d",x%n);//會列印出x轉換為 N進制數 從低位到高位上的每一位數
x/=n;
}
十進制轉換N進制:
#include<stdio.h>
#include<stdlib.h>
#include<string.h>
typedef int INT;
typedef struct dd
{
INT data;
struct dd *next;
}LNode,*LStack;
LStack pushstack(LStack top,int x)
{
LStack p;
p=(LStack)malloc(sizeof(LNode));
if((x)!=-1) {p->data=(x); p->next=top; top=p;}
return top;
}
LStack outstack(LStack top,int *x)
{
LStack p=top;
*x=p->data;
top=p->next;
free(p);
return top;
}
main()
{
int x,n;
LStack top=NULL;
printf("請輸入原數及要轉換的進制:");
do{
scanf("%d%d",&x,&n); //輸入一個十進制數和要轉換的進制,比如3 2 得到1 }while(x>35||x<0||n<2);
while(x){ //這個循環把每一位放到棧中
top=pushstack(top,x%n);
x/=n;
while(top!=NULL)
{
top=outstack(top,&x);
if(x<10)
printf("%c",x+'0');
else
printf("%c",x+'A'-10);
}
return 0; }
Ⅲ C語言八進制詳解
八進制是以8為基數的一種計數系統。在八進制系統中,你是這樣計數的:O,1,2,3,4,5,6,7,10,ll,12,13,等等。下面比較了八進制(第二行)和十進制(第一行)中的計數過程: O,l,2,3,4,5,6,7,8,9,10.11,12,13,14,15,16 0,1,2.3,4,5,6,7,10,11,12,13,14,15,16,17,20 注意,在八進制中,在數到7後,就要增加一個八進制位,第二個八進制位顯然就是8?(等於十進制的8)。如果你數到第三個八進制位(八進制的100),那將是8?或十進制的64,因此,八進制的100等於十進制的64。 現在,八進制已經不象以前那樣常用了,這主要是因為現在的計算機使用的是8,16,32或64位處理器,最適合它們的計數系統是二進制或十六進制(見20.24中有關十六進制計數系統的介紹) C語言支持八進制字元集,這種字元要用反斜杠字元來標識。例如,在C程序中,下面的語句並不少見: if(x=='\007')break; 這里的"\007"恰好就是ASCII值為7的字元;該語句用來檢查終端鳴笛字元。另一個常見的八進制數是"\033",即Escape字元(在程序中它通常表示為"\033")。然而,八進制數現在已經很少見了——它們被十六進制數代替了。
Ⅳ C語言中的八進制
除了二進制,C語言還會使用到八進制。
八進制是一種「逢八進一」的進制,它由 0~7 八個符號來描述。同樣,此處通過十進制和八進制的對比來描述八進制的表示方式。
八進制基數為8,加法運算時逢八進一,減法運算時借一當八。例如,數字 0、1、5、7、14、733、67001、25430 都是有效的八進制。
當使用八進製表示十進制數字8時,由於表示八進制的符號只有 0~7,因此,根據逢八進一的規則,需要向高位進一位,表示為10。同理,使用八進製表示十進制數字16時,繼續向高位進一位,表示為 20。
(4)c語言八進制擴展閱讀
八進制轉換為十進制的源代碼如下
#include<stdio.h>
void main()
{
char *p,s[6];int n;
p=s;
printf("Please input a Octal number:");
gets(p);
n=0;
while(*(p)!='