C语言 数字1以字节写入文件为什么是用31表示

作者&投稿:熊薇 (若有异议请与网页底部的电邮联系)
11到31的数~

你的意思是31除1和31乘以1有什么区别吗?31除1相当于1除以31等于31分之1,31乘以1等于31,就这意思。

#include
#include
using namespace std;
void main()
{
int I,a[]={10,11,22,33,44};
ofstream f("ok.bin",ios::binary);
for(i=0;i<5;i++)
f.write((char*)(&a[i]),2);
}

1、fprintf(fp,"%c",1);
2、fprintf(fp,"%c",'1');
3、fprintf(fp,"%d",1);

用笔记本打开fp指定的文件时,以上三种写法有不同的显示结果。

对于1,共占用1个字节,显示的可能是小人头:

对于2,共占用1个字节,显示的是:1

对于3,共占用4个字节,显示的可能是:三个空格,一个小人头



数字“1”被当做字符存储时,用的ASCII码,值是49(10进制),转化为16进制就是31(3*16^1 + 1*16^0)。
所以,你看到的31其实是字符“1”的16进制数字表示。

不管用w写入还是用wb写入

1都不会被改变的,也许你程序有什么地方写错了吧




台安县15257715250: C语言 数字1以字节写入文件为什么是用31表示 -
韩盼马来: 数字“1”被当做字符存储时,用的ASCII码,值是49(10进制),转化为16进制就是31(3*16^1 + 1*16^0). 所以,你看到的31其实是字符“1”的16进制数字表示.

台安县15257715250: C语言 int a=1以什么形式存储 -
韩盼马来: int 是整形,在16位系统下一般是2个字节,32位系统下一般是四个字节以2个字节举例 int a = 1 在内存中应该是00000000 00000001存储的(小端系统,低位存储低字节,大端系统高位存储低字节就应该是00000001 00000000).

台安县15257715250: c语言怎么将数据写入文件 -
韩盼马来: 可以使用C语言中的文件操作函数,将数据写入文件.具体如下 一、打开文件. 使用fopen函数.格式为: FILE *fopen(const char *name, const char * mode); 其中name为要写入的文件名,mode为格式字符.要写入文件,mode可以是: 1、...

台安县15257715250: 一个阿拉伯数字(很大在电脑内存中占几个字节,在C语言中数字为什么占四个字节? -
韩盼马来: “一个阿拉伯数字(无限大)在电脑内存中占几个字节” 跟这个数字的大小无关,由数据类型所决定.“有没有数字计算机不能算出来” 很多数字计算机是不能准确算出来的,只能近似估算,例如无理数或部分三角函数.尾数超长的小数也通常会被近似处理.“在C语言中整型数字为什么占四个字节?” 其实你这个表述并不对,应当说计算机C语言中整型占4个字节.传统上32位机的字长为4字节,因此当初整型就是占4个字节的.对于8/16位机而言整型是2字节的,而对于64位机而言整型是8字节的.

台安县15257715250: C语言文件把一个 字符数组写入一个文件 -
韩盼马来: 1、C语言标准库提供了一系列文件操作函数.文件操作函数一般以f+单词的形式来命名(f是file的简写),其声明位于stdio.h头文件当中.例如:fopen、fclose函数用于文件打开与关闭;fscanf、fgets函数用于文件读取;fprintf、fputs函数用于文...

台安县15257715250: 使用c或c++语言,能否将几位bit写入一个文件?如何实现?例如我想只将10101(bit内容)存到一个文件? -
韩盼马来: A 高位 补零 位数凑齐 8 的倍数 B 一个位用一个字节存储(每个字节高7位补上0)

台安县15257715250: C语言二进制流写入文件 -
韩盼马来: 我提个思路.字节是计算机操作的实际最基本单位,任何地址只能精确到字节而无法精确到位的.所以LZ一定要将位整合到以字节为单位才能进行其他操作.可以这么做,将二进制流按照每8位一个单位装成一个字节,并明确好字节之间的顺序,字节内高低位的顺序,最后末尾不足的要塞一些没意义的但LZ要知道的位凑足成字节.这里面当然必须反复用到位运算.通常的做法是字节之间的顺序按照自然字节地址由小到大顺序,字节内低位在前.比如对于已经整合成字节的字节流a[N],查看第 i 个位(从0起)的算法是 a[i/8] & (1<<(i%8)).不同的位序约定会稍有不同位操作

台安县15257715250: c语言中如何将一个数保存进文件中当文件打开时又能将数读出 -
韩盼马来: 读写函数是以字符(字节)为单位的读写函数. 每次可从文件读出或向文件写入一个字符. 1. 读字符函数fgetc fgetc函数的功能是从指定的文件中读一个字符,函数调用的形式为: 字符变量=fgetc(文件指针); 例如: ch=fgetc(fp); 其意义是...

台安县15257715250: C语言中,如何把数组里的数据写入文件 -
韩盼马来: buffer 指针,指向将要被写入的数据 size 项的大小,以字节为单位 count 项的数目 stream 文件指针 比如 将100个 int 数组写入 C:\data.datFILE *pF;int data[100];//数组初始化代码省略

台安县15257715250: C语言fwrite写入文件后为什么出现乱码? -
韩盼马来: 这个函数以二进制形式对文件进行操作 按数据定义结构的写入保持数据结构的长度,对于数值类型,再用文本方式打开时表现为 乱码.例如float a=12345.67,写入文件后为4个字节,打开后不是文本表示的8个字节.

本站内容来自于网友发表,不代表本站立场,仅表示其个人看法,不对其真实性、正确性、有效性作任何的担保
相关事宜请发邮件给我们
© 星空见康网