一个c++程序问题!急!求神!!

[复制链接]
查看11 | 回复3 | 2013-2-19 15:09:37 | 显示全部楼层 |阅读模式
超出了long所表示的值的范围,sizeof(long)应该和sizeof(int)一样的是4字节大小,所以最大能表示的值是2^32 - 1 = 4294967295 (一共10位数) 当你输入所谓的11位二进制数超出了这个范围 自然是乱套了.使用 hash表 来进行转换会更好一些,即效率 还不会溢出. 欢迎到0x30贴吧,讨论更多c/c++的知识....
回复

使用道具 举报

千问 | 2013-2-19 15:09:37 | 显示全部楼层
不是十位的问题,而是大于了long的范围,2的31次方。scanf("%d",&i);你用长整数接收,之后也是long计算,结果肯定是这样了,如果希望接收大数,应该输入就是用数组。...
回复

使用道具 举报

千问 | 2013-2-19 15:09:37 | 显示全部楼层
你输入的不是二进制呀,明显是一个整数,自欺欺人呢。。。。 输入十一位之后,系统都不知道你输入的是什么东西了,怎么会返回给你正确的东西。。。...
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

主题

0

回帖

4882万

积分

论坛元老

Rank: 8Rank: 8

积分
48824836
热门排行