1樓:1024程式設計師
c語言中二進位制的表示方法。
2樓:良慶慕容思博
c語言中沒有二進位制的格式輸出符號。
你可以用itoa函式很方便的將一個10進位制int轉變成二進位制字串。
如:inti;
chars[128];
scanf("%d",&i);
itoa(i,s,2);/3個引數,第一個是待轉換的數,第二個是存放轉換後的字串,第三個即需要轉換的進位制*/
printf("該數轉換為二進位制是:[%s]",s);
補充一點,itoa函式的標頭檔案是。
3樓:網友
這裡i(因為八進位制是以0開頭)相當於八進位制的10,轉換成二進位制就是001000,轉換為十進位制就是8
4樓:小帆向前衝
0開始表示8進位制,0x開始表示16進位制,沒有專門的二進位制表示方法。
5樓:匿名使用者
0bx ; 前面的不知道別胡說八道誤人子弟。
c語言如何定義二進位制變數?
6樓:匿名使用者
c語言中沒有 「二進位制變數」這一說法!
c語言中的資料基本型別包括:char short int long float double . 用哪種型別定義的就叫xx型別變數,如字元型變數,整型變數,浮點型變數。
各種變數中儲存的資料,都是以二進位制進行儲存的。因型別的不同,採用的二進位制編譯格式不同。如:整形類都是用補碼儲存,浮點型採用ieee754標準儲存。
對於int a=0x1a ; int b=0101 ;這種變數初始化中,a,b依然是整形變數,0x1a這種以0x開頭的資料表示16進位制常數(或稱常量),0101這種以0開頭的數字表示8進位制常數。但程式設計中並沒有規定二進位制常數的表示形式,如果需要使用的話,可以採用字元陣列來儲存二進位制數,如:
char a[100] =10100101" ;
需要運算時,再通過自定義函式將字串轉換成整數。
7樓:聽不清啊
c語言裡沒有類似的直接由二進位制形式賦值給變數的。
8樓:滄海雄風
c語言中沒有 「二進位制變數」這一說法!
對於int a=0x1a ; int b=0101 ;這種變數初始化中,a,b依然是整形變數,0x1a這種以0x開頭的資料表示16進位制常數(或稱常量),0101這種以0開頭的數字表示8進位制常數。但程式設計中並沒有規定二進位制常數的表示形式。
9樓:蓉雪球
十六進位制的運算就是二進位制的運算,其實我認為用16進位制僅僅是對二進位制資料的一種壓縮而已:
用程式來實現的話就是。
10樓:匿名使用者
boost_binary,某些編譯器支援0b字首作為擴充套件。
11樓:匿名使用者
c語言裡沒有二進位制數的表示法,可以通過位運算操作變數的各個位,如b=(a>>2)&1;
c語言中如何給一個變數賦一個二進位制數
12樓:匿名使用者
二進位制沒有表示方法。 c系列語言中,通常想要以二進位制操作的時候,我們叫它位操作,所以使用移位運算子「< 13樓:匿名使用者 int a;a=0b11101101; /0b代表2進位制數 0x代表16進位制數 直接寫數值預設為10進位制數。 14樓:匿名使用者 輸出二進位制的也看不懂 照樣十六進位制看起來便利一點 贊成。 c語言中如何提取二進位制數中的某一位? 15樓:檀香透窗欞 下面是三種方式: ①通過模2除2(62616964757a686964616fe59b9ee7ad9431333366306434%2、/2)的方法。 num%2——取出二進位制的最後一位。 num/2——右移去掉二進位制的最後一位。 通過while迴圈,依次取出二進位制的最後一位數字判斷是否為1,若為1則count++,while(num)只有當num變為0時迴圈結束。 問題:在測試-1出現bug,-1的二進位制中應該有32個1,輸出卻為0。我們將-1帶入**中發現-1%2=0,count不增,然後-1/2=0,迴圈結束,故輸出count的值為0。 解決方案:將變數num的資料型別改為unsigned int (無符號整型),此時表示的是正的整型的最大值,所以當num=-1時,表示二進位制為32個1的正數,通過迴圈可以輸出正確的個數。 ②通過右移操作符(>>按位與操作符(&)實現。 example:當num=10(1010),通過右移操作num>>i,二進位制向右移動i位。 //i=0,num>>0,右移0位,此時(1010)&(0001)=0 //i=1,num>>1,右移1位,此時(0101)&(0001)=1,count++ //i=2,num>>2,右移2位,此時(0010)&(0001)=0 //i=3,num>>3,右移3位,此時(0001)&(0001)=1,count++ ……因為二進位制共32位,所以迴圈要執行32次後結束,得到count為2。 缺點:不夠高效,必須迴圈32次。 ③通過按位與操作符(&)巧妙運算實現。 example: 當num=15時,1//num&(num-1)=(1111)&(1110)=(1110) 2//num&(num-1)=(1110)&(1101)=(1100) 3//num&(num-1)=(1100)&(1011)=(1000) 4//num&(num-1)=(1000)&(0111)=0 ,迴圈停止。共執行4次while迴圈。 16樓:匿名使用者 例如 求10(1010)的第三位數。 int a=10; int b=a; b=b>>(3-1)&1; 得到的b就是10的第三位。 17樓:八百攝氏度的歆 用&運算子。 例如:得出1101 0011的第5位,1101 0011&(1<<5)即可。 18樓:匿名使用者 #include //get_bit函式,抄獲取變襲量bainum中的index位。 int get_bit(int num, int index); int main() return 0; }int get_bit(int num, int index) 19樓:匿名使用者 利用按位bai求與運算。 比如du說。 16位二進位制數a: 1000 1000 1000 1000,如果你想獲zhia的哪一位dao 就把數字b: 0000 0000 0000 0000的那一為版設定為1. 比如說我想權獲得a的第三位。 就把b的第三位數字設定為1,則b為。 0000 0000 0000 0100,之後a、b求與,結果若為0,說明a的第三位為0,結果為1,說明a的第三位為1. 同理:若要獲得a的第五位,就把b設定為。 之後再求與。 通常在程式中。 數字b被稱為掩碼,就是專門用來測試某一位是否為0的數值。 希望對你有用。 如何在c語言中輸出二進位制數??? 20樓:金色潛鳥 可以用 %x格式 輸出16進位制數,16進位制一位拉4位,按8421分佈,就是2進位制數。1個位元組正好用2位16進製表示,轉為8位2進位制。 21樓:電烙鐵和焊錫 二進位制是不可以直接輸出的,但是可以用程式輸出#include void f(int n) int main() return 0;} 22樓:匿名使用者 沒有二進位制這個格式吧。 你可以寫個函式轉化一下。 c語言的二進位制數值如何直接輸出? 23樓:熊熊熊灬熊孩子 c標準沒有輸出二進位制的,不過用itoa()可以實現到二進的轉換。 可以使用itoa函式把變數的數值轉換成2進位制字串,再用輸出函式輸出。 用 法:char *itoa(int value, char *string, int radix); 詳細解釋:itoa是英文integer to array(將int整型數轉化為一個字串,並將值儲存在陣列string中)的縮寫。 引數:value: 待轉化的整數。 radix: 是基數的意思,即先將value轉化為radix進位制的數,範圍介於2-36,比如10表示10進位制,16表示16進位制。 * string: 儲存轉換後得到的字串。 返回值:char * 指向生成的字串, 同*string。 備註:該函式的標頭檔案是"" 下列函式可以將字串轉換為數字: 函式名 作 用。 atof() 將字串轉換為雙精度浮點型值。 atoi() 將字串轉換為整型值。 atol() 將字串轉換為長整型值。 strtod() 將字串轉換為雙精度浮點型值,並報告不能被轉換的所有剩餘數字。 strtol() 將字串轉換為長整值,並報告不能被轉換的所有剩餘數字。 strtoul() 將字串轉換為無符號長整型值,並報告不能被轉換的所有剩餘數字。 將字串轉換為數字時可能會導致溢位,如果你使用的是strtoul()這樣的函式,你就能檢查這種溢位錯誤。請看下例: **如下:# include # include # include void main(void); void main (void) c語言中 怎樣區分八進位制 十進位制 二進位制? 24樓:匿名使用者 在c語言裡,整數有三種表示形式:十進位制,八進位制,十六進位制。 其中以數字0開頭,由0~7組成的數是八進位制。以0x或0x開頭,由0~9,a~f或a~f 組成是十六進位制。除表示正負的符號外,以1~9開頭,由0~9組成是十進位制。 1.十進位制:除表示正負的符號外,以1~9開頭,由0~9組成。如,128,+234,-278。 2,八進位制:以0開頭,由0~7組成的數。如,0126,050000. 3,十六進位制:以0x或0x開頭,由0~9,a~f或a~f 組成。如,0x12a,0x5a000. 25樓:任成偉 程式語言通常規定是以0開頭的數字是八進位制數,以0x開頭的數字是十六進位制數,其餘的就是十進位制數,至於你說的「十進位制是d表示 二進位制是b 十六進位制是h」在編寫程式時是不能用的,那只是為了方便,書寫時(不是在計算機上程式設計時)用到的(只對於c語言程式設計,組合語言程式設計時,是寫上的),你的程式 int x=011中,x是用八進位制表示的一個數字,他是9.後面的printf("%d",+x);是以10進位制形式列印結果(%d的作用),所以程式執行的結果是9. 26樓:樂vov樂 0開頭的是八進位制。 0x開頭的是十六進位制。 普通的就是十進位制。 27樓:o荔枝紅了 0開頭的是八進位制。 0x開頭的是十六進位制。 28樓:匿名使用者 011前面為0所以為八進位制。 29樓:獅子xy愛我 區分十進位制和二進位制方法就是十進位制是滿10個進一個,二進位制就是滿兩個進一個。 include include int main b int calloc j,sizeof int 分配一維陣列儲存 rewind fp1 for i 0 i 1.fopen函式開啟需要讀取的文字,獲取該檔案的檔案描述符2.使用fscan 函式對檔案進行讀取。3.放到二維陣列其實就是讀取相應格式的... include int getnumber char s,int n return k else return 0 void exchange char s,int n,int k for i 0 ivoid main include int main printf 二進位制為 i for i 0 ... 計算機中常用的數的進位制主要有 二進位制 八進位制 十六進位制,學習計算機要對其有所瞭解。2進位制,用兩個阿拉伯數字 0 1 8進位制,用八個阿拉伯數字 0 1 2 3 4 5 6 7 10進位制,用十個阿拉伯數字 0到9 16進位制就是逢16進1,但我們只有0 9這十個數字,所以我們用a,b,c,...C語言將某檔案以二進位制形式開啟,二進位制資料存入一維陣列中!急急急
用c語言程式設計,實現十進位制和二進位制的相互轉化
c語言中二進位制十進位制十六進位制各是什麼意思