当前位置:首页 » 存储配置 » c语言二进制存储

c语言二进制存储

发布时间: 2023-03-04 16:01:04

⑴ 用c语言打开文本文件,然后以二进制保存

这些都是c语言打开文件函数fopen的一个参数打开文件方式的值:
定义函数
file
*
fopen(const
char
*
path,const
char
*
mode);
函数说明
参数path字符串包含欲打开的文件路径及文件名,参数mode字符串则代表着流形态。
mode有下列几种形态字符串:
r
打开只读文件,该文件必须存在。
r+
打开可读写的文件,该文件必须存在。
rb+
读写打开一个二进制文件,只允许读写数据。
rt+
读写打开一个文本文件,允许读和写。
w
打开只写文件,若文件存在则文件长度清为0,即该文件内容会消失。若文件不存在则建立该文件。
w+
打开可读写文件,若文件存在则文件长度清为零,即该文件内容会消失。若文件不存在则建立该文件。
a
以附加的方式打开只写文件。若文件不存在,则会建立该文件,如果文件存在,写入的数据会被加到文件尾,即文件原先的内容会被保留。
a+
以附加方式打开可读写的文件。若文件不存在,则会建立该文件,如果文件存在,写入的数据会被加到文件尾后,即文件原先的内容会被保留。
wb
只写打开或新建一个二进制文件;只允许写数据。
wb+
读写打开或建立一个二进制文件,允许读和写。
wt+
读写打开或着建立一个文本文件;允许读写。
at+
读写打开一个文本文件,允许读或在文本末追加数据。
ab+
读写打开一个二进制文件,允许读或在文件末追加数据。
上述的形态字符串都可以再加一个b字符,如rb、w+b或ab+等组合,加入b
字符用来告诉函数库打开的文件为二进制文件,而非纯文字文件。不过在posix系统,包含linux都会忽略该字符。由fopen()所建立的新文件会具有s_irusr|s_iwusr|s_irgrp|s_iwgrp|s_iroth|s_iwoth(0666)权限,此文件权限也会参考umask
值。
自己看吧

⑵ 能不能给我讲讲C语言中实数的二进制形式,是怎样存储

1、float类型数字在计算机中用4个字节(32位)存储。

遵循IEEE-754格式标准:
一个浮点数由3部分组成:符号位s(1位)和、指数e(8位)、底数m(23位)

2、格式
SEEE EEEE EMMM MMMM MMMM MMMM MMMM MMMM

S:符号位
E:指数,十进制指数加上127后的值得二进制数据
M:底数

3、符号位

指底数的符号,可正可负。

4、指数

占用8bit的二进制数,可表示数值范围为0-255。

但是指数可正可负,所以,IEEE规定,此处算出的次方必须减去127才是真正的指数。

所以,float类型的指数可从-126到128

5、底数

实际是占用24bit的一个值,但是最高位始终为1,所以,最高位省去不存储,在存储中占23bit
科学计数法。

再举一例:
17.625在内存中的存储

首先要把17.625换算成二进制:10001.101

在将10001.101右移,直到小数点前只剩1位:
1.0001101 * 2^4 因为右移动了四位

底数:因为小数点前必为1,所以IEEE规定只记录小数点后的就好。所以,此处的底数为:0001101
指数:实际为4,必须加上127(转出的时候,减去127),所以为131。也就是10000011
符号:整数,所以是0


综上所述,17.625在内存中的存储格式是:
01000001 10001101 00000000 00000000

⑶ C语言对二进制文件的存取是以什么为单位进行的。

c语言文件把数据看作是一连串的字符(字节)。C语言文件是一个字符(字节)的序列,是一字符流或字节流,是一种流式文件。根据数据的组织形式,可分为文本文件和二进制文件。
文本文件又称为ASCII文件,每一个字节中存放一个ASCII代码,代表一个字符。例如,一个整数123,若用.ASCII文件存放,占3个字节的
存储
单元,1、2、3各用一个字节
存储
。而1、2、3的ASCII码分别为49、50、51,故123用ASCII文件存放时,存放形式为001100010011001000110011。
二进制文件是直接用数据的二进制形式存放。例如,对整数123,二进制为0000000001111011,用二进制文件存放,需2个字节,存放形式为0000000001111011。
使用ASCII码文件,一个字节代表一个字符,便于对字符一一处理和输出,但占用较多的存储空间,并且要花费转换时间(ASCII码与二进制之间的转换)。使用二进制文件,
在内存中的数据形式与输出到外部文件中的数据形式完全一致,可以克服ASCII文件的缺点,但不直观,一个字节并不对应一个字符或一个数,不能直接输出字符形式。一般中间数据用二进制文件保存,输入输出使用ASCII文件。

⑷ C语言文件保存成二进制

1、使用fopen函数打开的时候,使用"wb"模式就可以保存二进制保存文件。

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 字符用来告诉函数库打开的文件为二进制文件,而非纯文字文件。
返回值:文件顺利打开后,指向该流的文件指针就会被返回。如果文件打开失败则返回NULL,并把错误代码存在errno中。

2、例子:

FILE*in,*out;
in=fopen("c:\p.png","rb");
out=fopen("c:\out.txt","wb");
chars[255]={0};
while(!feof(in))
{
intc=fgetc(in);
sprintf(s,"0x%x",c);
fputs(s,out);
}
return0;

⑸ C语言怎么定义一个二进制数

C语言中没有 “二进制数”这种类型,所以没办法直接定义;但可以直接定义16进制数。

例:

int main(){

int a;

scanf("%p",&a);//16进制数输入%p是输入一个十六进制的数scanf("%llx",&a);也可以输入十六进制并且比较正规

printf("%d",a);//十进制输出%d是输出一个十进制的数

printf("0x%x",a);//16进制输出printf("%llX ",a);也可输出一个十六进制数如果红色部分大写X则输出十六进制为大写字母否则小写x输出为小写字母

}

(5)c语言二进制存储扩展阅读

C语言中定义整型数据的十六进制数:

unsigned int hex_val = 0x123;

//定义了一个整型变量并赋以初始值为一个十六进制常量。

if (scanf("%x", &hex_val) != EOF)

{

printf("它的八、十进制分别=%o、%d ", hex_val, hex_val);

}

⑹ 能不能给我讲讲C语言中实数的二进制形式,是怎样存储的

实数也就是小数的存储,小数的存储是IEEE754标准存储的,以C语言为例float类型占32位,double类型占64位,以float类型来说,这32位的float有1位表示小数的符号,8位表示指数,23位表示底数。换句话说,你可以使用一种叫位域的结构来定义它们。比如

structbit_float{
ints:1;
inte:8;
intm:23
};

如果使用c++则可以使用 bitset的标准类库模板来进行操作。

热点内容
随机启动脚本 发布:2025-07-05 16:10:30 浏览:535
微博数据库设计 发布:2025-07-05 15:30:55 浏览:32
linux485 发布:2025-07-05 14:38:28 浏览:310
php用的软件 发布:2025-07-05 14:06:22 浏览:760
没有权限访问计算机 发布:2025-07-05 13:29:11 浏览:437
javaweb开发教程视频教程 发布:2025-07-05 13:24:41 浏览:734
康师傅控流脚本破解 发布:2025-07-05 13:17:27 浏览:249
java的开发流程 发布:2025-07-05 12:45:11 浏览:696
怎么看内存卡配置 发布:2025-07-05 12:29:19 浏览:288
访问学者英文个人简历 发布:2025-07-05 12:29:17 浏览:837