c語言二進制
① c語言中printf直接打出2進制數是%什麼16進制是什麼
C語言中,控制printf函數輸出格式的是格式字元,printf沒有直接打出2進制數的格式符,直接打出16進制的格式符是x格式符,即%x。
printf函數中輸出的格式為printf("<格式化字元串>", <參量表>),格式化字元串由格式控制、和輸出表列兩部分組成,其中格式控制包含格式聲明和普通字元。
格式聲明由「%」和格式字元組成,如%d、%f等。它的作用是將輸出的數據類型轉換為指定的格式然後輸出。普通字元是需要在輸出時原樣輸出的字元。
(1)c語言二進制擴展閱讀
C語言printf函數格式字元:
1、%d,按整型數據的實際長度輸出。
2、%md,m為指定的輸出欄位的寬度。
3、%ld,輸出長整型數據。
4、o格式符,以八進制整型式輸出整數。
5、x格式符,以十六進制數形式輸出整數。
6、u格式符,用來輸出unsigned型數據,即無符號數,以十進制形式輸出。
7、c格式符,用來輸出一個字元。
8、s格式符,用來輸出一個字元串。
9、f格式符,用來輸出實數(包括單雙精度),以小數形式輸出。
10、e格式符,以指數形式輸出實數。
11、g格式符,用來輸出實數,它根據數值的大小,自動選f格式或e格式(選擇輸出是占寬度較小的一種),且不輸出無意義的零。
12、p格式符,用於變數地址的輸出。
13、%[scanfset]:
scanfset 有兩種形式:一種是以非 「^」 字元開頭的 scanset , 表示在讀入字元串時將匹配所有在 scanfset 中出現的字元,遇到非scanfset 中的字元時輸入就結束;
另外一種形式是以 「^」 字元開頭的scanfset ,表示在讀入字元串時將匹配所有不在scanfset 中出現的字元,遇到scanfset 中的字元輸入就結束。
② C語言中2進制是什麼意思
二進制數是逢2進位的進位制,0、1是基本算符;計算機運算基礎採用二進制。電腦的基礎是二進制。在早期設計的常用的進制主要是十進制(因為我們有十個手指,所以
二進制數
十進制是比較合理的選擇,用手指可以表示十個數字,0的概念直到很久以後才出現,所以是1-10而不是0-9)。電子計算機出現以後,使用電子管來表示十種狀態過於復雜,所以所有的電子計算機中只有兩種基本的狀態,開和關。也就是說,電子管的兩種狀態決定了以電子管為基礎的電子計算機採用二進制來表示數字和數據。常用的進制還有8進制和16進制,在電腦科學中,經常會用到16進制,而十進制的使用非常少,這是因為16進制和二進制有天然的聯系:4個二進制位可以表示從0到15的數字,這剛好是1個16進制位可以表示的數據,也就是說,將二進制轉換成16進制只要每4位進行轉換就可以了。
③ C語言中怎麼輸出數據的二進制
二進制數不能像十進制那樣%d直接輸出。
如果想輸出一個數的二進制可以通過函數把其轉成2進制字元串再將其輸出。
itoa函數
原型:char*itoa(intvalue,char*string,intradix);
參數:int value 被轉換的整數,char *string 轉換後儲存的字元數組,int radix 轉換進制數,如2,8,10,16 進制等
功能:將任意類型的數字轉換為字元串。在<stdlib.h>中與之有相反功能的函數是atoi。
參考代碼:
1、
#include<stdlib.h>
#include<stdio.h>
intmain(void)
{
intnumber=10;
charstring[25];
itoa(number,string,2);
printf("十進制數:%d,二進制數:%s ",number,string);
return0;
}
/*
十進制數:10,二進制數:1010
*/
2、
voidprint_bin(intn)
{
intl=sizeof(n)*8;//總位數。
inti;
if(i==0)
{
printf("0");
return;
}
for(i=l-1;i>=0;i--)//略去高位0.
{
if(n&(1<<i))break;
}
for(;i>=0;i--)
printf("%d",(n&(1<<i))!=0);
}
④ 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輸出為小寫字母
}
(4)c語言二進制擴展閱讀
C語言中定義整型數據的十六進制數:
unsigned int hex_val = 0x123;
//定義了一個整型變數並賦以初始值為一個十六進制常量。
if (scanf("%x", &hex_val) != EOF)
{
printf("它的八、十進制分別=%o、%d ", hex_val, hex_val);
}
⑤ C語言二進制怎麼表示
c++中負數存儲時,不是簡單的將符號位置為1,而是採用補碼的形式存儲的,負數最高位為符號位,也就是1,其餘全部取反,然後再加1。
假如操作系統是32位,-1的二進制存儲不是:1000
0000 0000 0001,而是:1111 1111 1111 1110+1即1111 1111 1111 1111。
(5)c語言二進制擴展閱讀:
C語言面向過程,與C++、Java等面向對象編程語言有所不同。C語言的設計目標是提供一種能以簡易的方式編譯、處理低級存儲器、僅產生少量的機器碼以及不需要任何運行環境支持便能運行的編程語言。
C語言描述問題比匯編語言迅速、工作量小、可讀性好、易於調試、修改和移植,而代碼質量與匯編語言相當。
⑥ c語言二進製表示
正數,原碼補碼一樣。
負數:除符號位,每位取反,然後加1。
所以-1的16位表示為:
11111111 11111111