c語言編譯中的數字是二進制數嗎
Ⅰ c語言怎麼定義一個二進制數
C語言中沒有 「二進制數」這種類型,所以沒辦法直接定義;但可以直接定義16進制數。
例:
int main(){
int a;
scanf("%p",&a);//16進制數輸入%p是輸入一個十六進制的數scanf("%llx",&a);也可以輸入十六進制並且比較正規
printf("%d",a);//十進制輸出%d是輸出一個十進制的數
printf("0x%x",a);//16進制輸出printf("%llX ",a);也可輸出一個十六進制數如果紅色部分大寫X則輸出十六進制為大寫字母否則小寫x輸出為小寫字母
}
(1)c語言編譯中的數字是二進制數嗎擴展閱讀
C語言中定義整型數據的十六進制數:
unsigned int hex_val = 0x123;
//定義了一個整型變數並賦以初始值為一個十六進制常量。
if (scanf("%x", &hex_val) != EOF)
{
printf("它的八、十進制分別=%o、%d ", hex_val, hex_val);
}
Ⅱ c源程序為什麼不能表示二進制,程序本身不就是二進制嗎
數據在內存中以二進制補碼形式存放!之所以用二進制存放是因為計算機容易識別二進制數,只有0和1表示,編碼解碼速度塊,存取速度塊。 我們熟悉的10進制、8進制、16進制數,表示起來都不是很長,如十進制數20,表示成8進制是24,表示成16進制是14,而表示成二進數(最短的是八位)是00010100。可見,二進制數書寫起來比較困難,你想想,你想輸入一個數值是20的數,你是想輸20、24、14、00010100中的哪一個?顯然,如果不是特殊的要求,我想我們都不會選擇輸入00010100吧。 基於此,C語言沒有給你提供輸入二進制數的格式控制符,不像10進制、8進制、16進制一樣有%d、%o、%x這樣的輸入控制符。也就是說,你不能直接輸入輸出二進制數! 但是,C語言同樣可以表示二進制數,因為數據在內存中都是以二進制數存儲的,你想想,存都存的是二進制,還不能表示二進制數嗎?只是數據的存儲方式你看不到,但是假如你想看到一個數的二進制數,同樣可以簡單的實現。 請看程序,它就是把num這個數輸出成二進制形式: #include<stdio.h> #include <stdlib.h> void main() { int num; char str[33]; printf("請輸入整數num: "); scanf("%d",&num); itoa(num,str,2); printf("%d的二進制形式是%s\n",num,str); }
Ⅲ 在用vc進行c語言編程時所謂的編譯是不是把自己打的c語言代碼轉換成二進制的數字
可以這么理解。
編譯的過程就是把人能讀懂的東西,變成人讀不懂的東西,但是計算機能讀懂的。
這些目標文件,如果人來看,就是一堆的二進制數字,參考黑客帝國 ;D
可是在計算機眼裡,他們就不一樣了,有些是指令,有些是數據。
Ⅳ 如何判斷c語言中數的進制
在C語言中,或者說在計算機中,所有的數都是以二進制方式存儲的。其它進制,包括8進制,10進制,16進制均是供人閱讀的。
在C語言中,整型常數有8進制,10進制,16進制三種表示方式。
1 以0開頭的常數,如0112, 0531,等,為8進製表示。
2 以0x或0X開頭的,為16進制,如0x12, 0xABC.
3 不帶任何前綴的,為10進製表示,如123,,812。