当前位置:首页 » 编程语言 » 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 11:27:34 浏览:986
酷狗音乐试听缓存删了会怎样 发布:2025-02-13 11:02:12 浏览:267
python游戏服务端 发布:2025-02-13 11:00:19 浏览:927
云原生服务器 发布:2025-02-13 10:55:34 浏览:827
linuxip命令查看ip 发布:2025-02-13 10:49:45 浏览:421
java基础应用 发布:2025-02-13 10:44:53 浏览:711
linux内核抢占 发布:2025-02-13 10:36:32 浏览:890
家装公司源码 发布:2025-02-13 10:35:35 浏览:49
aspnet更新数据库 发布:2025-02-13 10:35:34 浏览:385
海尔压缩机不工作 发布:2025-02-13 10:15:32 浏览:224