因为 long值 如果 超过int的最大值, 在转换成int的时候, 会出现丢失位的现象 ,
所以通过普通的方法 是转不回来的,
需要进行位运算, 才可以

```public static void main(String[] args) {// 定义 16 进制数 的字符串 :  f3000192String s16 = "f3000192";// 将 16进制 转为 10进制// f3000192 = 2*16`0 + 9*16`1 + 1*16`2 + 0*16`3 + 0*16`4 + 0*16`5 + 3*16`6   + 15*16`7    = 4076863890 //          = 2*1    + 144    + 1*256  + 0      + 0      + 0      + 50331648 + 4026531840 = 4076863890Long parseLong = Long.parseLong(s16, 16);System.out.println(parseLong);// 结果为 4076863890/** long 的取值 范围 为 -2^63~2^63-1 * int  的取值 范围 为 -2147483648~2147483647 * * 将 long 强转为 int时 ; 因为 数字 超过了 int 的最大值范围* 4076863890 long* 2147483647 int* * long是64位的,转成int的时候直接把高32位去掉了* * 比如* Long.MAX_VALUE在Java中的值是2的63次方,即011111111111111(63个1) * 最前面的是符号位 0为正数,1为负数,int截取了后面的32位数 为111111111(32个1) */Integer parseInt = parseLong.intValue();System.out.println(parseInt);// 结果为 -218103406// 再将 int 转回 成 long 此时 已经 转不回来了System.out.println(parseInt.longValue());// 结果仍然 为 -218103406/** 转换成int类型以后,数字的最高位是1的缘故,所以为负数* 转换回来要变成正数,需要按照取反加1的原则* * 用>>>无符号向右位移一位,* 然后再转换成long再用<<符号左位移一位,* * 因为向右位移一位会丢失一位,因此要判断数字是否为奇数,* 如果是奇数,那么最右一位为1,那么转换完成以后要+1,* 如果是偶数,最右一位是0,那么左位移以后就不用再做处理了。* * 位运算可以程序设计的基础,虽然不常用到,但是能解决很多棘手的问题*/long turnback = parseInt >>> 1; // 右位移运算,向右位移一位turnback <<= 1;// 判断是否为奇数,奇数加1if (parseInt % 2 != 0) {turnback += 1;}System.out.println(turnback);// 结果 又 变回 4076863890 了
}
```

如何 将 超过int最大值的 long值 转成int , 然后再转换回来相关推荐

  1. c语言如何float转换到uint,float转为int sql中float怎样转成int

    C语言中float型转换成int型是什么规则 float型前24位是小数部分,后8位是指数部分.整型是16位,那是怎么转换C语言整型使用原码.反码.补码进行编码,而浮点型使用IEEE754进行编码,所 ...

  2. Int类型变量的取值范围为何是2的31次方?

    Int类型变量的取值范围解释 Int类型数据的取值范围为:-2147483648 ~2147483647,即 - 231 ~ 231 -1. 首先:在C++中一个Int类型变量占4个字节,即32位,而 ...

  3. c++如何将int数组中的值取出*号运算符_如何用动态规划巧妙解决 “双十一” 购物时的凑单问题?羊毛薅起来!!!...

    点击上方"程序员大白",选择"星标"公众号 重磅干货,第一时间送达 今年过去的 "双十一" ,你有薅到羊毛吗? 每年的双十一,会有各种促销活 ...

  4. mysql中int最大多少,MySQL中int最大值深入讲解

    MySQL中int最大值深入讲解 导语 前两天看到的问题,展开写一下. 字节 我们都知道计算机是以二进制为基础.存储的基本单位是 Bit,也称为比特.二进制位.1bit 可以表示 0 或者 1 两个数 ...

  5. go int 最大值_Dig101 - Go之灵活的slice

    文章首发:公众号 newbmiao Dig101: dig more, simplified more and know more Slice作为go常用的数据类型,在日常编码中非常常见. 相对于数组 ...

  6. 在将varchar值id转换为int时失败_Python—CAN报文转换工具教程

    一.CAN报文简介 CAN是控制器局域网络(Controller Area Network, CAN)的简称,是由以研发和生产汽车电子产品著称的德国BOSCH公司开发的,并最终成为国际标准(ISO 1 ...

  7. 详解mysql int类型的长度值问题

    提问: MySQL的字段,unsigned int(3), 和unsinged int(6), 能存储的数值范围是否相同.如果不同,分别是多大? 回答: 不同,int(3)最多显示3位无符号整体,in ...

  8. c++语言int最大值,c++ 关于如何获取int型的最大值

    之前有一个题,因为求最小值时minn初始赋值不够大,导致一直没过,卡了很久. 之后我就发愤图强学了这方面的内容: int型的最大值是0x7fffffff, 可以算一下 0x7FFFFFFF 是多少 每 ...

  9. 找出数组中最大值次大值的一次遍历方法(C++)

    写在前面 昨天做了一道LeetCode题(747. 至少是其他数字两倍的最大数 - 力扣(LeetCode) (leetcode-cn.com)), 大致意思是找出数组中的最大值和次大值并返回最大值索 ...

最新文章

  1. Servlet Mapping 中/ 和 /*的区别
  2. [小明学算法]3.启发式搜索算法----A*算法之我见
  3. 图.exe 已触发了一个断点。 出现了_学术简报︱基于保护综合重要度的最小断点集优选方法...
  4. 可实现自动设置尺寸的图片上传类
  5. [PHP 安全] pcc —— PHP 安全配置检测工具
  6. linux共享库及/etc/ld.so.conf文件的应用
  7. 今天起,我们喝的百年牛奶要变了!
  8. jQuery删除节点和追加节点
  9. 学习笔记--maven
  10. 数据冲突Statspack ORA-00001 unique constraint violated错误的解决
  11. java反编译工具--jd-gui
  12. Day_02 【Java基础】JDK_1.8的下载安装和环境变量的配置、JDK帮助文档的下载【详细步骤】
  13. 自己整理的90分以上最新物联网技术导论期末选择填空大题总考点
  14. 如何由 XRD 图谱确定所做的样品是准晶结构
  15. 解决office2010每次打开出现配置进度的方法
  16. BAT批处理文件 reg命令详解
  17. 数钥科技遭用户投诉:“招集令”被指息费高,曾有助贷平台被处罚
  18. 绍兴市越城区人大常委会主任徐荻一行莅临迪捷软件调研指导
  19. Android动画-Interpolator(插值器)大全
  20. 【R language】 清楚区分输出函数 cat、print、paste 区别 经验分享

热门文章

  1. linux系统句柄数命令
  2. std::expected以及其开源实现
  3. 手把手教你超赞的五脏排毒DIYzz
  4. 惠普暗夜精灵3plus配置ubuntu18.0.4、cuda9.0、cudnn7.0、anaconda(python2.7)、tensorflow-gpu1.8、keras、opencv等
  5. Android自定义view之仿微信录制视频按钮
  6. 无尽之海:从手机到万物
  7. [转]解决Win7 下 windows update 出现8024402F错误的问题
  8. 物体碰撞,c#受力。
  9. 试试Excel 2010的工作表能够放多少行?
  10. 中国民生银行宁波分行暑期实习生面筋