當前位置:首頁 » 編程語言 » c語言字元串轉二進制

c語言字元串轉二進制

發布時間: 2022-05-23 13:07:21

『壹』 怎麼用c語言編程把十進制轉化成二進制

c語言中沒有二進制的格式輸出符號.
你可以用itoa函數很方便的將一個10進制int轉變成二進制字元串.
如:
int
i;
char
s[128];
scanf("%d",&i);
itoa(i,
s,
2);
/*3個參數,第一個是待轉換的數,第二個是存放轉換後的字元串,第三個即需要轉換的進制*/
printf("該數轉換為二進制是:
[%s]\n",s);
補充一點,itoa函數的頭文件是stdlib.h

『貳』 C語言中字元串如何轉換為二進制、八進制、十進制、十六進制

什麼意思,?沒懂,,,是說轉為 2 8 16進制的整數?
只要是整數 int。就只有大小。沒有進制的區別。
所謂的進制,只是為了人為識別。
但是可以把整數,轉換為響應進制的字元串。
舉例
char num[] = "15";
int val = atoi(num); //字元串轉為整數

char tem[16] = {};
_itoa(val,tem,2);//整數轉為2進制字元串
_itoa(val,tem,8);//8進制
_itoa(val,tem,16);//16進制
_itoa(val,tem,10);

『叄』 C語言,如何把輸入的一個字元串,轉換為相應的二進制數

#include <stdio.h>
int main()
{
char str[100];
int i,n=0;
scanf("%s",str);
for(i=0;str[i]!=''i++)
{
if(str[i]==Ƈ' || str[i]==Ɔ')
{
n<<=1;
n+=str[i]-Ɔ'
}
else
{
printf("不是二進制數 ");
return 1;
}
}
printf("%d ",n);
}

『肆』 C語言 把char 型 或者 整數轉化成二進制 要怎麼轉

這個可以使用itoa函數
itoa為c語言的一個函數。itoa函數是一個廣泛應用的,從非標准擴展到標準的C語言。它不能被移植,因為它不是標準定義下的C語言,但是,編譯器通常在一個不遵循程式標準的模式下允許其通過header
,因為它是一個從邏輯對應到標准庫的函數。itoa取整數輸入值,並將其轉換為數字的基數。


char
*itoa(
int
value,
char
*string,int
radix);


把一整數轉換為字元串


itoa(i,num,10);
i
----需要轉換成字元串的數字
num----
轉換後保存字元串的變數
10----
轉換數字的基數(即進制)。10就是說按10進制轉換數字。還可以是2,8,16等等你喜歡的進制類型
返回值:指向num這個字元串的指針
程序例:
#include
#include
int
main(void)
{
int
number
=
12345;
char
string[25];
itoa(number,
string,
10);
printf("integer
=
%d
string
=
%s\n",
number,
string);
return
0;
}
char
*itoa(int
value,char
*string,int
radix)
將整數value轉換成字元串存入string,
radix為轉換時所用基數(保存到字元串中的數據的進制基數)

『伍』 C語言:怎麼將十六進制字元串轉換成二進制字元串,誰幫我寫個函數

十六進制轉成十進制的函數:
//返回16進制字元串s對應的整數值,遇到任何一個非法字元都返回-1。
int
HexToDec(char
*s)
{
char
*p
=
s;
//空串返回0。
if(*p
==
'\0')
return
0;
//忽略開頭的'0'字元
while(*p
==
'0')
p++;
int
dec
=
0;
char
c;
//循環直到字元串結束。
while(c
=
*p++)
{
//dec乘16
dec
<<=
4;
//數字字元。
if(c
>=
'0'
&&
c
<=
'9')
{
dec
+=
c
-
'0';
continue;
}
//小寫abcdef。
if(c
>=
'a'
&&
c
<=
'f')
{
dec
+=
c
-
'a'
+
10;
continue;
}
//大寫ABCDEF。
if(c
>=
'A'
&&
c
<=
'F')
{
dec
+=
c
-
'A'
+
10;
continue;
}
//沒有從任何一個if語句中結束,說明遇到了非法字元。
return
-1;
}
//正常結束循環,返回10進制整數值。
return
dec;
}
十進制轉成二進制的函數:
/*遞歸法求二進制數*/
#include

void
printb(int
x,int
n);
void
main()
{
int
x;
printf("input
number:");
scanf("%d",&x);
printf("number
of
decimal
form:
%d\n",x);
printb(x,sizeof(int)*8);
putchar('\n');
}
void
printb(int
x,int
n)
{
if(n>0)
{
putchar('0'+(
(unsigned)(x
&
(1<<(n-1)
)
)>>(n-1)));
printb(x,n-1);
}
}

『陸』 C語言如何將字元串轉換成8位二進制ASCii碼

就是將
十進制
轉換為二進制的程序,因為字元對應的ascii都是十進制,所以將其轉換為二進制就行,可以參考如下的十
進制轉換
為二進制
int
i,
x,
n,
data[16],
index=0;
scanf("%d%d",
&x,
&n);
for(i=0;
i<16;
i++)
data[i]
=
0;
printf("%d對應的%d進制為:",
x,
n);
//
n=2,表示二進制
while(x>0)
{
data[index]
=
x%n;
x
=
x/n;
index++;
}
for(i=index-1;
i>=0;
i--)
printf("%d",
data[i]);
printf("\n");

『柒』 C語言如何將字元串轉換到對應的01二進制的字元串,比如AB字元就變為字元串「0100000101000010」

如下子程序就可以將一個字元的ASCII碼按二進制形式輸出:
void binarystring(char c)
{
int i;
for(i=0;i<8;i++)
{ if (c & 0x80) putchar('1'); else putchar('0');
c <<= 1;
}
}
如上定義後,只要調用
binarystring('A');binarystring('B');putchar('\n');
即可輸出
0100000101000010

補充:
看了上面xie0500150326兄的回答,補充說明幾句。
xie0500150326兄的回答中的trans(char x) ,直接換成我這里的binarystring(char c),
結果一樣。

但他的演算法操作較復雜,這是因為:
計算機內的字元信息,本來就已經是二進制形式存放了,他的演算法中又採用十進制轉換二進制的演算法,反復做除法,自然是「多此一舉」,故效率較低。而本演算法直接用二進制位做判斷輸出,應該比較更合理。

他的演算法操作較復雜的另一點原因是,
該演算法是由低位到高位的次序計算,而輸出卻要求高位到低位的次序,所以要暫存再重取。如果直接採用高位到低位的次序計算,就不需要暫存可以直接輸出了。高位到低位的次序的演算法有多種,本演算法是一種。另外,也可以仿照十進制純小數轉換為二進制的演算法。這里不詳述了。

不過,因為現代計算機的速度很高,效率常常不重要了,所以這兩種方法都可以。只有在某些應用如「快速過程式控制制軟體」等情況,對效率要求較高時,才需要注意這個問題。

『捌』 將用戶輸入字元串轉化2進制並輸出(c語言)

不知道你說的是針對數字的轉換成2進制還是說所有的字元串轉成2進制,以下代碼針對所有的字元串:
#include
<stdio.h>
#include
<string.h>
#include
<stdlib.h>
int
main(int
argc,
char
*
argv[])
{
char
input[1024];
scanf("%s",
input);
char
c;
int
len
=
strlen(input);
char
*
output
=
new
char[len
*
8
+
1];
memset(output,
(int)'0',
len
*
8
+
1);
char
tempBuff[9];
for(int
i
=
0;
i
<
1024;
i++)
{
c
=
input[i];
if(c
==
0)
break;
itoa((int)c,
tempBuff,
2);
strcpy(output
+
(i
*
8)
+
(8
-
strlen(tempBuff)),
tempBuff);
output[(i
+
1)
*
8]
=
'0';
}
output[len
*
8]
=
0;
printf(output);
delete
[]
output;
return
0;
}
如果是做數字的轉換,參考一下,為經測試:
#include
<stdio.h>
#inlcude
<stdlib.h>
int
main()
{
int
n;
scanf("%d",
&n);
char
temp[1024];
atoi(n,
temp,
2);
printf(temp);
return
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語言 將用戶輸入字元串轉化2進制並輸出

很簡單。假定你輸入的數字是整型(double型太麻煩)。
第一步:用強制類型轉換成int或者long
第二步,這時候有2種方法
①.使用位移操作符「<<」和「>>」,這個就很簡單了,
總共要移動的次數 = sizof(int或者long) * 8;
移位的時候做個判斷,移出來是『1』就輸出1,否則輸出0;
這種方法適合於很大的數字。要注意高位有時候是無意義的0.不用輸出
②.根據我們最熟悉的十進制轉二進制的原理編程。設強制轉換後的數為x;
則循環
do
{
cout << x%2;
x=x/2;
}while(x != 1)
這里不要忘了補一個最後一位
cout<<x;
一個完整的二進制就輸出完了,不過順序是倒著的而已。
這個方法適合於相對小的數字

熱點內容
腳本師傳奇 發布:2025-02-13 14:45:48 瀏覽:480
我的世界lce伺服器剪輯 發布:2025-02-13 14:40:50 瀏覽:624
phpsftp上傳 發布:2025-02-13 14:35:43 瀏覽:273
c學生管理系統資料庫 發布:2025-02-13 14:21:41 瀏覽:122
傳奇添加會員腳本 發布:2025-02-13 14:20:50 瀏覽:205
微信開發平台源碼 發布:2025-02-13 14:14:20 瀏覽:613
安卓大屏屏幕休眠是什麼意思 發布:2025-02-13 14:13:28 瀏覽:464
腳本的參數設置 發布:2025-02-13 14:11:57 瀏覽:863
androidtexture 發布:2025-02-13 14:11:57 瀏覽:393
怎麼取消網路密碼怎麼設置 發布:2025-02-13 14:11:54 瀏覽:426