c語言八進制數
⑴ c語言中-1的八進制值是多少
c語言中-1的八進制值是37777777777
先轉化為二進制1111 1111 1111 1111,然後二進制轉八進制,從右邊起,每三位一組,每組對應一個八進制數,如,以一位元組為例:
10101011(B) = 10 101 011 = 253(O)
所以,32個1對應的八進制數就是37777777777
(1)c語言八進制數擴展閱讀:
二進制化為八進制:
整數部份從最低有效位開始,以3位一組,最高有效位不足3位時以0補齊,每一組均可轉換成一個八進制的值,轉換完畢就是八進制的整數。
小數部份從最高有效位開始,以3位一組,最低有效位不足3位時以0補齊,每一組均可轉換成一個八進制的值,轉換完畢就是八進制的小數。
⑵ C語言中是用"OX"開頭表示是十六進制數,那十進制,二進制,八進制呢
1,C語言沒有直接輸出二進制的方法。
2,八進制在輸出的時候以0開頭,例如:0123十進制的83
3,十進制正常輸出,無特別表示。
4,十六進制在輸出的時候以0X或者0x開頭,例如0x123 十進制的291。
(2)c語言八進制數擴展閱讀:
進制轉換是人們利用符號來計數的方法。進制轉換由一組數碼符號和兩個基本因素「基數」與「位權」構成。
基數是指,進位計數制中所採用的數碼(數制中用來表示「量」的符號)的個數。
位權是指,進位制中每一固定位置對應的單位值。
16進制就是逢16進1,只有0~9這十個數字,用A,B,C,D,E,F這六個字母來分別表示10,11,12,13,14,15。字母不區分大小寫。
十進制就是逢10進1。
八進制就是逢8進1,八進制數採用 0~7這八數來表達一個數。
二進制就是逢2進1。
K進制就是逢K進1。
參考資料來源:網路-進制轉換
⑶ C語言程序十進制的數轉換成八進制的數
C語言程序十進制的數轉換成八進制的數的辦法:
#include <stdio.h>
#include <math.h>
void main()
{
int n,a,sum = 0,i =0;
printf("十進制輸出一個數n
");
scanf("%d",&n);
while(n)
{
a = n%8;
n = n/8;
sum += a*pow(10,i);
i++;
}
printf("八進制輸出sum:%d",sum);
}
⑷ C怎麼定義八進制數
不論八進制還是十進制數都是整型,定義方式(假設定義a為整型)都為int a;且計算機存儲的方式都是二進制,只不過輸入或者顯示的方式可以不同,如輸入八進制數可以按以下方式:scanf("%o",&a);不過其存儲方式還是二進制,且可以以任何整型的方式輸出,具體示例如下,按八進制輸入一個數,並按八進制,十進制和十六進制輸出:
⑸ C語言中 怎樣區分八進制 十進制 二進制
編程語言通常規定是以0開頭的數字是八進制數,以0x開頭的數字是十六進制數,其餘的就是十進制數,至於你說的「十進制是D表示 二進制是B 十六進制是H」在編寫程序時是不能用的,那隻是為了方便,書寫時(不是在計算機上編程時)用到的(只對於C語言編程,匯編語言編程時,是寫上的),你的程序 int x=011中,x是用八進製表示的一個數字,他是9.後面的printf("%d\n",++x);是以10進制形式列印結果(%d的作用),所以程序運行的結果是9.
⑹ 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
以上內容參考:網路-八進制
⑺ 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語言中scanf()函數支持輸入整數時按8進制進行輸入,如:
#include <stdio.h>
void main(void)
{
int x;
scanf("%o", &x ); //按8進制輸入
printf("hex:%#X, dec:%d, oct:%#o\n", x,x,x ); //按16進制 10進制 8進制進行數據輸出
}
scanf()函數還支持按16進制輸入,格式串為:%x
⑼ c語言八進制輸入的問題
根據你程序中scanf("%d,%o",&a,&b);這句語句,你的輸入格式應該是:M(一個十進制數),N(一個八進制數)(回車)M中各位數值的范圍要求0-9N中各位數值的范圍要求0-7對於N,我進一步說明一下:它是從第一位開始識別提取,直到第一個非0-7的數。例如:對於N,如果輸入07328123(則實際賦給N的八進制數是0732)如果輸入232a23289(則實際賦給N的八進制數是232)如果輸入9213(則N為隨機數,因為你輸入數的第一位就不符合要求)
⑽ 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。
(10)c語言八進制數擴展閱讀:
C語言是國際上廣泛流行的、很有發展前途的計算機高級語言。它適合作為系統描述語言,即可用來編寫系統軟體,也可用來編寫應用軟體。
早期的操作系統等系統軟體主要是用匯編語言編寫的(包括
UNIX操作系統在內)。由於匯編語言依賴於計算機硬體,程序的可讀性和可移植性都比較差。為了提高可讀性和可移植性,最好改用高級語言,但一般的高級語言難以實現匯編語言的某些功能(匯編語言可以直接對硬體進行操作),例如:對內存地址的操作、位操作等)。人們設想能否找到一種既具有一般高級語言特性,又具有低級語言特性的語言,集它們的優點於一身。於是,C語言就在這種情況下應運而生了。