c二进制数据库
‘壹’ bin在c语言是什么意思
bin在c语言是二进制文件。
bin既是二进制文件,而exe则是PE文件编译链接的过程是:源代码->(编译)->[段落的]二进制代码->(链接)->PE文件要得到二进制文件,则只需执行编译的过程即可。建议你用TC,即16位的C/C++编译器,这样的编译器编译的程序不会像32位的程序那样有很多的区块!
数据库中二进制文件的高速存取方式:
围绕二进制文件基于数据库存取存在速度慢、占用资源多的问题,通过对BS上传文件原理的分析,通过数据与文件分开存储,文件切割上传的方法实现二进制文件基于数据库的高速存取。
对于文件类资料保存到数据库中,使用分块传输与存储可以有效提高应用效率,另外通过测试关系型数据库和文件型数据库对此类应用的性能,发现文件类数据库的性能优势比较明显。
‘贰’ c语言如何读写二进制
详细:http://hi..com/gibbon_ho/blog/item/9ca853e68447c42bb9382086.html
我一直觉得二进制文件读写是个很容易的事,所以一直没在意,最近在写一个http客户端,实现文件下载的时候,发现总有问题,后来才发现是忘记写文件用二进制方式,惭愧的很啊。然后,就在网上搜索了一下,发现通过C语言实现二进制文件读写的资料居然出奇的少,这让我很愤怒,因为虽然这东西很简单,但是对于初学者,往往会需要花很长的时间去弄,一旦明白,又发现花的时间很不值得,罢了,这里通过一个文件拷贝的例子来讲讲二进制文件的读写吧。先介绍函数,我们一共要用到三个函数,fopen,fread,fwrite。二进制读写的顺序是用fopen以二进制方式打开读写文件,然后使用fread和fwrite两个函数将数据写入二进制文件中。下面我们看看一个拷贝程序的源码:
Copy.c:#include <stdio.h>
#include <stdlib.h>
#define MAXLEN 1024
int main(int argc, char *argv[])
{
if( argc < 3 )
{
printf("usage: %s %s\n", argv[0], "infile outfile");
exit(1);
}
FILE * outfile, *infile;
outfile = fopen(argv[2], "wb" );
infile = fopen(argv[1], "rb");
unsigned char buf[MAXLEN];
if( outfile == NULL || infile == NULL )
{
printf("%s, %s",argv[1],"not exit\n");
exit(1);
}
int rc;
while( (rc = fread(buf,sizeof(unsigned char), MAXLEN,infile)) != 0 )
{
fwrite( buf, sizeof( unsigned char ), rc, outfile );
}
fclose(infile);
fclose(outfile);
system("PAUSE");
return 0;
}
‘叁’ 跪求:请大侠帮帮我!怎样用C语言编写并读取按二进制存储,每三个字节存储两个数,一个数12bit的.dat文件
每三个字节存储两个数,一个数12bit。这个怎么解析?
还有你要画图还是解析出来数据就行了?
‘肆’ 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);
}