Integer.parseInt(String,int)方法问题

AC_YE 2021-03-03 04:24:34
为什么里面不能转32位的二进制Integer.parseInt(10000000100000001000000010000000,2) 怎样将这个二进制转成10进制利用方法
...全文
419 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
冰思雨 2021-03-04
  • 打赏
  • 举报
回复
Integer.parseInt(String,int) 参数列表里面,第一个参数是字符串形式的。不是整数。 楼主的代码里面 , Integer.parseInt(10000000100000001000000010000000,2)第一个参数和第二个参数,都会被识别成整数。 默认情况下,是 int 类型的 十进制整数,而且,还是带符号的。 楼主可以尝试 Integer.parseInt(”10000000100000001000000010000000”,2); 这样写代码。 用半角的双引号括起来的内容,才会被识别为字符串。 这是语法基础。
qybao 2021-03-04
  • 打赏
  • 举报
回复
引用 楼主 ~Commodity 的回复:
为什么里面不能转32位的二进制Integer.parseInt(10000000100000001000000010000000,2) 怎样将这个二进制转成10进制利用方法
parseInt的本身的实现问题,它是用原码的来输入的,所以只能输入31的正数原码(超过31位报错),至于想输入负数,就必须用带负号的方式 比如 System.out.println(Integer.parseInt("-00000000000000000000000000000001", 2)); //-1的原码加上负号 System.out.println(Integer.toBinaryString(-1)); //但是输出时却是补码,不能用该补码带入上面的输入,只能用上面负号+原码的方式来输入
qq_39936465 2021-03-03
  • 打赏
  • 举报
回复
引用 2 楼 ~Commodity 的回复:
[quote=引用 1 楼 qq_39936465的回复:][quote=引用 楼主 ~Commodity 的回复:]为什么里面不能转32位的二进制Integer.parseInt(10000000100000001000000010000000,2) 怎样将这个二进制转成10进制利用方法
integer最高位是符号位,只能转31位2进制。[/quote] 那怎样转32位的[/quote] int是32位但是最高位是符号位,也就是说数值位只有31位 integer.paresint只能识别31位2进制正数。 你输入32位就抄了上限了
韩_师兄 2021-03-03
  • 打赏
  • 举报
回复
你看一下,Integer里面有最大值,最小值得范围规定,不能超过
AC_YE 2021-03-03
  • 打赏
  • 举报
回复
引用 1 楼 qq_39936465的回复:
[quote=引用 楼主 ~Commodity 的回复:]为什么里面不能转32位的二进制Integer.parseInt(10000000100000001000000010000000,2) 怎样将这个二进制转成10进制利用方法
integer最高位是符号位,只能转31位2进制。[/quote] 那怎样转32位的
qq_39936465 2021-03-03
  • 打赏
  • 举报
回复
引用 楼主 ~Commodity 的回复:
为什么里面不能转32位的二进制Integer.parseInt(10000000100000001000000010000000,2) 怎样将这个二进制转成10进制利用方法
integer最高位是符号位,只能转31位2进制。

62,623

社区成员

发帖
与我相关
我的任务
社区描述
Java 2 Standard Edition
社区管理员
  • Java SE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧