long a=65536printf( %d,%8ld ,a,a);输出结果是:0.65536 为什么
3个回答
展开全部
书上指的int整型是两个字节,也就是16个二进制,但65536转化成二进制是1 00000000 00000000有十七位,第一位1就被溢出没了,结果就剩十六个0,当然是0。
实际上现在计算机整型int都是4个字节,能保留32个二进制,65536才17位二进制,就能正确输出
实际上现在计算机整型int都是4个字节,能保留32个二进制,65536才17位二进制,就能正确输出
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
江苏华简晟01
2024-10-21 广告
2024-10-21 广告
色谱检测服务热线18721007633, 江苏华简晟检测科技是研究性测试服务机构,基于多年的分析表征专业技术积累和辐射全国的服务网络,每年出具数万分技术报告,累计服务客户数千万家。...
点击进入详情页
本回答由江苏华简晟01提供
展开全部
长整形赋值给整形,只保留后面十六个比特位。即 1 00000000 00000000,只保留后面十六位,所以是零。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
没有啊,
我运行了一下结果是:65536, 65536 第二个结果前面有三个空格
我运行了一下结果是:65536, 65536 第二个结果前面有三个空格
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询