|
网站首页
|
业界新闻
|
小组
|
威客
|
人才
|
下载频道
|
博客
|
代码贴
|
在线编程
|
编程论坛
|
登录
注册
短消息
我发表的主题
我参与的主题
我收藏的贴子
我上传的附件
我下过的附件
编辑个人资料
我的博客
用户控制面板
搜索
道具
恢复默认风格
碧海青天
秋意盎然
棕红预览
粉色回忆
蓝雅绿
紫色淡雅
青青河草
e点小镇
橘子红了
红红夜思
水晶紫色
雪花飘飘
新年快乐
风格
短消息
论坛展区
帮助
编程论坛
→
开发语言
→
『 C语言论坛 』
→ 强制类型转换问题
我的收件箱(0)
欢迎加入我们,一同切磋技术
用户名:
密 码:
共有
288
人关注过本帖
标题:
强制类型转换问题
只看楼主
加入收藏
小代帅帅
来 自:北京昌平
等 级:
新手上路
帖 子:92
专家分:7
注 册:2013-5-11
结帖率:
89.66%
楼主
收藏
已结贴
√
问题点数:5 回复次数:7
强制类型转换问题
真是头疼啊,有哪位大神帮忙看一下,输出结果为什么是p和4464,他是怎么转换的呢?请帮忙细致分析一下。谢谢
#include<stdio.h>
int main(void)
{
char c;
short int i;
float z=70000;
c=(char)z;
i=(short)z;
printf("%c\n",c);
printf("%ld\n",i);
return 0;
}
搜索更多相关主题的帖子:
return
2013-12-04 15:31
举报帖子
使用道具
赠送鲜花
zhaogay
来 自:宫
等 级:
黑侠
帖 子:151
专家分:586
注 册:2013-10-10
第
2
楼
收藏
得分:0
70000的二进制:
1 0001 0001
0111 0000 -》112 -- 'p'
1
0001 0001 0111 0000 -> 4464
不知道有木有关系
好好学习,天天想上
2013-12-04 16:02
举报帖子
使用道具
赠送鲜花
kajj_0321
等 级:
论坛游民
帖 子:47
专家分:93
注 册:2013-10-23
第
3
楼
收藏
得分:5
回复 楼主 小代帅帅
int型数值赋给char型变量时,只保留其最低8位,高位部分舍弃。
70000的二进制去后八位是01110000=112=p;
long型数据赋给int型变量时,将低16位值送给int型变量,而将高16 位截断舍弃.
70000 超过了int了。你自己试着转换下吧。
这里有个前提就是int占2个字节,还请大侠赐教
[
本帖最后由 kajj_0321 于 2013-12-4 16:08 编辑
]
kajj->1314 努力每一天。
2013-12-04 16:03
举报帖子
使用道具
赠送鲜花
kajj_0321
等 级:
论坛游民
帖 子:47
专家分:93
注 册:2013-10-23
第
4
楼
收藏
得分:0
回复 2楼 zhaogay
去掉最高位后面的16位就是4464,
kajj->1314 努力每一天。
2013-12-04 16:06
举报帖子
使用道具
赠送鲜花
zhaogay
来 自:宫
等 级:
黑侠
帖 子:151
专家分:586
注 册:2013-10-10
第
5
楼
收藏
得分:0
1
0001 0001 0111 0000 -> 4464染色没染好
好好学习,天天想上
2013-12-04 16:07
举报帖子
使用道具
赠送鲜花
韶志
来 自:斗气大陆
等 级:
贵宾
威 望:
44
帖 子:2223
专家分:13592
注 册:2013-3-22
第
6
楼
收藏
得分:0
z=70000
shaort int 的范围是 -32768~32767,或者说是一个循环 是 65536
先说 i=(short)z;吧
明显数据溢出,所以70000-65536=4464,这个比较容易理解
那么 那个 p是怎么输出的呢?
c=(char)z;
这是 float 向 char 转换,可以理解为高级转换到低级,之间需要把float先转换为int类型(由上可知转换结果为4456)
然而ASCII码范围只有 8 位(也就是0-255),所以只取4456的后 8 位
4456 的二进制形式为 00010001 01110000
,后 8 位是 01110000,也就是112,也就是 p 的ASCII码
三十年河东,三十年河西,莫欺少年穷!
2013-12-04 16:10
举报帖子
使用道具
赠送鲜花
小代帅帅
来 自:北京昌平
等 级:
新手上路
帖 子:92
专家分:7
注 册:2013-5-11
第
7
楼
收藏
得分:0
回复 5楼 zhaogay
哈哈,不要伤心,谢谢你啦
别用你的常规和常识来诋毁我卓越的创造力和另类的行为······
2013-12-04 16:10
举报帖子
使用道具
赠送鲜花
小代帅帅
来 自:北京昌平
等 级:
新手上路
帖 子:92
专家分:7
注 册:2013-5-11
第
8
楼
收藏
得分:0
回复 6楼 韶志
谢谢!!
别用你的常规和常识来诋毁我卓越的创造力和另类的行为······
2013-12-04 16:12
举报帖子
使用道具
赠送鲜花
8
1/1页
1
快速回复:
强制类型转换问题
数据加载中...
关于我们
|
广告合作
|
编程中国
|
清除Cookies
|
TOP
|
手机版
编程中国
版权所有,并保留所有权利。
Powered by
Discuz
, Processed in 0.015934 second(s), 7 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved