c语言二进制编码函数 c语言二进制运算符

怎么用c语言输出二进制码

在C语言的标准输出中,有16进制,10进制和8进制的输出格式,但是没有二进制的输出格式。所以要想输出二进制,只能靠自己写函数进行输出了。

公司主营业务:网站设计制作、成都网站设计、移动网站开发等业务。帮助企业客户真正实现互联网宣传,提高企业的竞争能力。成都创新互联是一支青春激扬、勤奋敬业、活力青春激扬、勤奋敬业、活力澎湃、和谐高效的团队。公司秉承以“开放、自由、严谨、自律”为核心的企业文化,感谢他们对我们的高要求,感谢他们从不同领域给我们带来的挑战,让我们激情的团队有机会用头脑与智慧不断的给客户带来惊喜。成都创新互联推出北戴河免费做网站回馈大家。

基本思想为通过移位操作+与操作取出各个位上的值,然后对其进行输出即可。

以32位无符号整型数据二进制输出为例,代码如下:

#include stdio.h

void binary_print(unsigned int v)

{

int i;

int bit;

int size = 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');

else putchar('1');

}

}

c语言如何读写二进制

1、二进制文本使用fopen函数的二进制模式“rb”就可以打开。对于程序来说,不管后缀名如何,文件分为两种类型:文本文件和二进制文件。 C语言里有一系列文件操作函数。区分文本和二进制文件,需要在打开文件时设置不同的控制符mode的变量即可。

2、fopen的函数原型:FILE * fopen(const char * path,const char * mode);

fopen函数的第一个参数是文件路径,第二个参数是打开方式,有以下几种方式:

r 以只读方式打开文件,该文件必须存在。

r+ 以可读写方式打开文件,该文件必须存在。

rb+ 读写打开一个二进制文件,允许读数据。

rw+ 读写打开一个文本文件,允许读和写。

w 打开只写文件,若文件存在则文件长度清为0,即该文件内容会消失。若文件不存在则建立该文件。

w+ 打开可读写文件,若文件存在则文件长度清为零,即该文件内容会消失。若文件不存在则建立该文件。

a 以附加的方式打开只写文件。若文件不存在,则会建立该文件,如果文件存在,写入的数据会被加到文件尾,即文件原先的内容会被保留。(EOF符保留)

a+ 以附加方式打开可读写的文件。若文件不存在,则会建立该文件,如果文件存在,写入的数据会被加到文件尾后,即文件原先的内容会被保留。 (原来的EOF符不保留)

wb 只写打开或新建一个二进制文件;只允许写数据。

wb+ 读写打开或建立一个二进制文件,允许读和写。

wt+ 读写打开或着建立一个文本文件;允许读写。

at+ 读写打开一个文本文件,允许读或在文本末追加数据。

ab+ 读写打开一个二进制文件,允许读或在文件末追加数据。

上述的形态字符串都可以再加一个b字符,如rb、w+b或ab+等组合,加入b 字符用来告诉函数库打开的文件为二进制文件,而非纯文字文件。

3、例程:

#include stdlib.h

#include stdio.h

int main ()

{

FILE * fpPhoto, * fpText, * fpTarget ;

int     iRead ;

char    szBuf[100] ;

printf ("请输入第一个文件名(jpg):\n") ;

gets (szBuf) ;

fpPhoto = fopen (szBuf, "rb") ;

printf ("请输入第二个文件名(txt):\n") ;

gets (szBuf) ;

fpText = fopen (szBuf, "rb") ;

printf ("请输入目的文件名(jpg):\n") ;

gets (szBuf) ;

fpTarget = fopen (szBuf, "wb") ;

if (!fpPhoto || !fpText || !fpTarget)

{

printf ("打开文件失败!\n") ;

system("pause") ;

return -1 ;

}

while ((iRead = fread (szBuf, 1, sizeof (szBuf), fpPhoto))  0)

fwrite (szBuf, 1, iRead, fpTarget) ;

while ((iRead = fread (szBuf, 1, sizeof (szBuf), fpText))  0)

fwrite (szBuf, 1, iRead, fpTarget) ;

fclose (fpPhoto) ;

fclose (fpText) ;

fclose (fpTarget) ;

return 0 ;

}

如何用c语言编写二进制写入函数

写入函数??。。正好有现成的~粘给你了~你自己选吧 二进制转十进制: // #include stdlib.h //// system("pause"); #includestdio.h #includestring.h #includemath.h //pow() int main() { int i; char str[26]; gets(str); double sum=0.0; long length=strlen(str); for(i=0;ilength;i++) { sum += (str[i]-'0')*pow(2,length-i-1); } printf("%d\n",(long)sum); // system("pause"); return 0; } 十进制转n进制: #includestdio.h void Fun(int Shi) { if( Shi 2 ) printf("%d",Shi); else { Fun(Shi/2) ; printf("%d",Shi%2); } } int main() { int Shi ; scanf("%d",Shi) ; Fun(Shi) ; printf("\n") ; return 0 ; } 追问: 哦 对不起 是 二进制文件 写入函数 不是 二进制转换 函数!!不好意思啊 不过还是非常感谢你的帮助,,谢谢了!! 回答: fwrite本来就是支持 二进制数 据写入,你还需要什么函数?

十进制转化二进制,c语言用调用函数

1、打开visualC++6.0-文件-新建-文件-C++SourceFile。

2、输入预处理命令和主函数:

#includestdio.h           /*输入输出头文件*/

voidmain()/*空类型:主函数*/

3、定义变量和数组的数据类型并输入一个十进制:

intb[16],x,k,r,i;/*定义变量和数组的数据类型为整型*/

printf("输入一个十进制:");/*输出文字提示*/

scanf("%d",x);         /*输入一个十进制数字*/

k=-1;/*将-1赋给k*/

4、用除R取余倒计法将十进制的数转化成二进制的数:

do/*用循环将十进制的数转化成二进制的数*/

{

r=x%2;/*用除R取余倒计法计算二进制*/

b[++k]=r;/*将值赋给数组*/

x/=2;/*将原数除2*/

}while(x=1);

5、输出结果:

for(i=k;i=0;i--)        /*将上面倒计的数正回来*/

printf("%d",b[i]);/*输出结果*/

printf("\n");

6、完整的源代码:

#includestdio.h           /*输入输出头文件*/

voidmain()/*空类型:主函数*/

{

intb[16],x,k,r,i;/*定义变量和数组的数据类型为整型*/

printf("输入一个十进制:");/*输出文字提示*/

scanf("%d",x);         /*输入一个十进制数字*/

k=-1;/*将-1赋给k*/

do/*用循环将十进制的数转化成二进制的数*/

{

r=x%2;/*用除R取余倒计法计算二进制*/

b[++k]=r;/*将值赋给数组*/

x/=2;/*将原数除2*/

}while(x=1);

for(i=k;i=0;i--)        /*将上面倒计的数正回来*/

printf("%d",b[i]);/*输出结果*/

printf("\n");

}


当前题目:c语言二进制编码函数 c语言二进制运算符
网页URL:http://cdiso.cn/article/doicspg.html

其他资讯