當前位置:首頁 » 編程語言 » c語言中求出一個數的二進制
擴展閱讀
webinf下怎麼引入js 2023-08-31 21:54:13
堡壘機怎麼打開web 2023-08-31 21:54:11

c語言中求出一個數的二進制

發布時間: 2022-08-19 14:39:50

『壹』 在c語言中,如何讓計算機輸出一個整數的二進制形式,

在C語言里沒有這樣的函數,只能自已編寫一個這樣的函數
大概思路
void Fun(int num)
{
if(num ==1 || num == 0) //等於0 或是 1時,直接輸出
{
printf("%d",num);
}
else
{
while(num/2>0)
{
printf("%d",num%2); //取余
num = num/2; //取整
}
}

}

『貳』 C語言中怎樣輸出一個二進制的數

//我們用按位運算符:右移>>和按位運算符與^,這兩個功能就可以實現。
#include<stdio.h>
voidprintBinary(intnumber);//這是聲明一個自定義的函數,讓編譯器知道我們造了一個這么個函數,功能:將整數以二進制形式輸出。

intmain()
{
printBinary(22);//括弧裡面可以填上你要輸出的整數,比如要輸出22的二進制形式
return0;
}
voidprintBinary()//自定義一個函數printBinary
{
inttemp=sizeof(number)-1;//定義一個變數:如果你的編譯器是32位的,也就是inttemp=31;

while(temp>=0)//temp是循環的次數,不需要糾結判斷是>=還是>,寫完之後檢驗一下就知道哪個對了。

intvalue=number>>temp^1;//a>>temp。temp移動後,是把這個整數的二進制形式中最後一位,依次與1進行按位與運算。假如temp=31,就是把這個整數的二進制形式右移31位,只剩下了這個整數的二進制形式的開頭第一個數字,然後與1進行按位與運算。真則為1,假則為0。

printf("%d",value);//每次輸出整數的二進制形式的一個數字,從開頭開始輸出。.
temp--;//按位右移循環,直到把整數內存中所有的位移完畢。從內存中二進制形式的第一位開始。

}

『叄』 怎麼用c語言輸出二進制碼

在C語言的標准輸出中,有16進制,10進制和8進制的輸出格式,但是沒有二進制的輸出格式。所以要想輸出二進制,只能靠自己寫函數進行輸出了。

基本思想為通過移位操作+與操作取出各個位上的值,然後對其進行輸出即可。

以32位無符號整型數據二進制輸出為例,代碼如下:

#include<stdio.h>
voidbinary_print(unsignedintv)
{
inti;
intbit;
intsize=sizeof(v)*8;
//這里的size是輸入參數v的位數,直接用32代替也可以,但寫成sizeof(v)*8這樣更為通用。
for(i=0;i<size;i++)
{
bit=v&(1<<(size-i-1));//提取出第i位的值
if(bit==0)putchar('0');
elseputchar('1');
}
}

『肆』 輸入一個整數,將其轉化為二進制數進行輸出用c語言

源程序如下:#include
void
main()
{
int
x,y,a[32],i=0;
printf("請輸入一個十進制整數.\n");
scanf("%d",&y);
x=y;
while(x!=0)
{
a[i++]=x%2;
//將結果存放到數組中
x=x/2;
}
printf("十進制整數%d轉換為二進制數是:\n",y);
for(i--;i>=0;i--)
printf("%d",a[i]);//通過數組輸出
printf("\n");
}vc++測試如下:

『伍』 在C語言中怎麼把一個數轉換成二進制然後輸出

數據在內存中本來就是以二進制補碼存放的,設法從高位元組至低位元組一個bit一個bit地輸出到屏幕上即可。根據題面要求,輸出過程還要做以下工作:
從最高位元組開始檢測,全0的位元組略去;
每8位增加輸出一個空格。
代碼如下:
12345678910111213141516//#include "stdafx.h"//If the vc++6.0, with this line.#include "stdio.h"int main(void){ char *p; unsigned i,n,x=1<<sizeof(int)*8-1; printf("Input an integer...\n"); scanf("%d",&n); for(p=(char *)&n,i=sizeof(int)-1;i>0;i--) if(*(p+i)==0) x>>=8; else break; for(i=0;x;x>>=1) printf(++i%8 ? "%d" : "%d ",(n&x) || 0); printf("\n"); return 0;}

『陸』 如何在c語言中輸出二進制數

有八進制,十進制和十六進制,不過沒二進制,如果要,只能自己寫轉化
#include
void
main()
{
int
n
=
11;
printf("%o\n",
n);
printf("%d\n",
n);
printf("%x\n",
n);
}

『柒』 怎用C語言求一個數的二進制

用棧實現,用520除2把所得余數進棧,把商作為新的數除2,再把余數進棧,取商為新的數,如此往復直到商為1為止,然後把棧中的數依次輸出後的1、0組合即為所求數的二進制數。
具體的代碼不便粘貼,有興趣歡迎交流

『捌』 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語言中,如何求一個數的二進制補碼舉個例子,謝謝!

正數的補碼是其原值
例如佔一個位元組的10,二進制為0 000 1010, 第一位0表示+,
補碼也是0 000 1010
負數的話-10, 二進制為1 000 1010, 第一位1 表示-,
補碼求法為 :符號位不變,其餘取反再加1
1 000 1010 取反 1 111 0101
再加1: 1 111 0110