java 将long类型的数值转无符号数
2024-08-31 04:34:51
由于JAVA中基本数据类型均为有符号数,而且最大数据类型long为8字节
假如long为负数时,最高位为1,转为无符号数时会超出long的取值范围,所以转换规则如下:
方法:
public static final BigDecimal readUnsignedLong(long value) throws IOException {
if (value >= 0)
return new BigDecimal(value);
long lowValue = value & 0x7fffffffffffffffL;
return BigDecimal.valueOf(lowValue).add(BigDecimal.valueOf(Long.MAX_VALUE)).add(BigDecimal.valueOf(1));
}
方法类似于示例:
int value = -3;
long unsignedValue = value & Long.MAX_VALUE;
unsignedValue |= 0x80000000L;
其中0x7fffffffffffffffL等价于Long.MAX_VALUE
0x80000000L 等价于Long.MAX_VALUE+1
最新文章
- 模具厂MES项目介绍
- TCP/IP协议详解 卷1—读书笔记(1)
- CKEditor实现图片上传
- Eclipse ";IOConsole updater"; has encounter a problem
- C# 反射 设置字段值无效的解决办法
- Quartz-2D绘图之图形上下文详解
- 移动平台3G手机网站前端开发布局技巧汇总
- 用gitolite新建项目,clone后首次push,可能会出现: git: No refs in common and none specified; doing no
- ios系统视频播放器MPMoviePlayerController应用遇到的坑
- a标签无跳转的死链接
- 老司机带你开飞机 一: mssql on linux 安装指导
- mysql有多条记录的单个字段想存为一个字段显示的方法
- spring cloud之Feign的使用
- 【转】Linux netstat命令详解,高级面试必备
- visio studio删除空行
- 安装 composer 并启动 yii2 项目
- JMeter学习(四)参数化(转载)
- C#写的COM组件注册问题兼论微软Regasm注册的BUG
- SQL 查询结果保存为 临时表
- SQL数据库简单的建立与操作
热门文章
- Python之逻辑运算符
- rest-assured的日志使用介绍
- 大佬的编码建议,让你的代码更pythonic
- 【原创】SpringMVC同一RequestMapping返回不同的类型
- 洛谷 P3388 【模板】割点(割顶)
- Week 5: Object Oriented Programming 9. Classes and Inheritance Exercise: int set
- (找到最大的整数k使得n! % s^k ==0) (求n!在b进制下末尾0的个数) (区间满足个数)
- PIE SDK打开静止卫星数据
- Linux下jenkins改端口、解决内存溢出、版本升级
- GreenPlum 大数据平台--基础使用(一)