c语言问题,关于文件的
1个回答
展开全部
回答楼主问题的时候,我们先假设这样一个事情int为4个字节,char为1个字节。
然后我们在确定一件事,就是window操作系统对于文件的读取写入都是以字节为单位。
接下来就是一些比较基础的东西。(可能你们还没有学)
1在int里面与char里面的存放有什么差别(假设二进制是直接原码存放,我比较好说)
举例:
int : 00000000 00000000 00000000 00000001
char: 00000001
也就是说0~255的数在int、char里面存放时候,显示出来时一样的,就是说一个int被分成4个char型存放。
现在我们看看 256这个数在int、char里面的存放
int: 00000000 00000000 00000001 00000000
char: 00000000
这个时候就产生差别了
回答:
因此,对于你的1001显示不出来的原因。我们可以这样看下
int存放1001的二进制码: 00000000 00000000 00000011 11101001
把他解释为4个char的10进制码:(0)(0)(3)(233)
ASCII码的取值范围(0~128),超过部分就用扩展码解释,所以照成你里面有乱码。
同样,我们把4个char存放1001的二进制形式: 00000001 00000000 00000000 00000001
那我们把4个char转为int(10进制)型,其值明显不等于1001。产生这个问题的原因就是操作系统对于数据的解释不同照成的
然后我们在确定一件事,就是window操作系统对于文件的读取写入都是以字节为单位。
接下来就是一些比较基础的东西。(可能你们还没有学)
1在int里面与char里面的存放有什么差别(假设二进制是直接原码存放,我比较好说)
举例:
int : 00000000 00000000 00000000 00000001
char: 00000001
也就是说0~255的数在int、char里面存放时候,显示出来时一样的,就是说一个int被分成4个char型存放。
现在我们看看 256这个数在int、char里面的存放
int: 00000000 00000000 00000001 00000000
char: 00000000
这个时候就产生差别了
回答:
因此,对于你的1001显示不出来的原因。我们可以这样看下
int存放1001的二进制码: 00000000 00000000 00000011 11101001
把他解释为4个char的10进制码:(0)(0)(3)(233)
ASCII码的取值范围(0~128),超过部分就用扩展码解释,所以照成你里面有乱码。
同样,我们把4个char存放1001的二进制形式: 00000001 00000000 00000000 00000001
那我们把4个char转为int(10进制)型,其值明显不等于1001。产生这个问题的原因就是操作系统对于数据的解释不同照成的
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询