Java 十进制和十六制之间的转化(负数的处理)

十六进制与十进制之间的相互转换 // 8位十六进制转十进制有符号数 // 因为8位有符号数范围为-128~127,而8位十六进制数范围为0~255,所以如果转换后十进制数大于127,则说明该数为负数,负数以补码存储,所以负数N=-[127-(x_dec-128)+1]=x_dec-256 x = 'a8'; x_dec = hex2dec(x); if x_dec > 127 x_dec = x_dec - 256; end // 十进制转十六机制 // 因为8位十六进制数范围为0~255,所以如果十进制数小于0... 阅读详情

在一些情况下,我们需要将数字在十进制和十六制下互相转化。

在Java中将十进制转化成十六进制非常的简单。

int var = 324;
String hex = Integer.toHexString(var);
long lvar = 3243143432134L;
String lhex = Long.toHexString(lvar);
 
这样就可以得16进制的字符串了。当要从十六进制转化成十进制的时候也很方便:
Integer.parseInt(hex, 16);
Long.parseLong(hex, 16);
 
当int和long变量的值都是正数的时候,这样做一点问题都没问题,但当int和long变量的值为负数的时候,问题就出现了:
int var = -23243;
String hex = Integer.toHexString(var);
Integer.parseInt(hex, 16);
这时会报出Exception:

Exception in thread "main" java.lang.NumberFormatException: For input string: "ffffa535"
    at java.lang.NumberFormatException.forInputString(NumberFormatException.java:48)
    at java.lang.Integer.parseInt(Integer.java:459)
    at demo.Main.main(Main.java:10)

 

这是为什么呢? 问题就在于Integer.parseInteger的时候,会将传入十六进制数字一致认为成正数,所以这时候表示负数的十六进制字符串所表示的数字就超出了Integer所能表示的数字范围,所以会报出NumberFormatException, 同时的问题也会现在Long.parseLong身上。

那么如何才解决这个问题呢?这时候的解决方案就是BigInteger.

BigInteger bi = new BigInteger(hex, 16);

通过BigInteger.intValue();和 BigInteger.longValue(); 得到你所需要的int或long型值。

java 进制转换,二进制 十进制 十六进制 正数 负数的进制等等!.docx java 进制转换,二进制 十进制 十六进制 正数 负数的进制等等!.docxjava 进制转换,二进制 十进制 十六进制 正数 负数的进制等等!.docx 立即下载

相关推荐

【解决方案】使用transformer指定显卡后,模型依然加载到默认第1张显卡上

按理说指定了环境变量为后面几张显卡,模型会自动加载到我们指定的显卡上。可是查看gpu使用情况,发现还是加载在了第一张显卡上,这是为啥呢?

m0_56745306的博客 2442

Java中十六进制数(正负)的转换为十进制

1.二进制转化为十进制 二进制数一般转化为十进制数都是直接调用 Integer.parseInt(hexadecimalStr, 2); Long.parseInt(hexadecimalStr, 16); 直接使用这个方法,就能将数据转化为对应的十进制数, 但是这个一般只能适用正数 2.负数二进制、十六进制转化为十进制 一把二进制数八位表示,bit8位代表符号 0正 1负 ; 十六进制也是可以使用八位表示例如FFFFFFFF可以表示 -1 在实际的使用中 十六进制的数据可能表示负数; 这个十六进制可能只有

rainAndyou的博客 4661

HFSS与AI融合:智能算法如何重塑天线设计流程

本文探讨了HFSS与AI融合如何通过智能算法革新天线设计流程。在5G/6G通信时代,AI技术如机器学习和遗传算法显著提升了高频电磁场仿真效率,将传统设计周期从数周缩短至数小时,并优化了天线性能。文章详细介绍了AI与HFSS的集成策略、关键技术突破及典型应用案例,展示了智能算法在天线设计中的巨大潜力。

weixin_29035147的博客 781

Java十六进制与十进制互转

项目过程中,总是要用到十进制与十六进制相互转换的方法,今天来总结记录一下。 十进制整数转十六进制 int i = -50; //int是4个字节,32位,取值范围为: -2^31——2^31-1 String r; r = Integer.toHexString(i); System.out.println(r); 正数转换后正常,负数转换完为8位 十进制转十六进制...

a_littleone的博客 2488

微信小程序测试号开发后上传按钮灰色?三步快速切换正式AppID

本文详细解析了微信小程序测试号开发后上传按钮灰色的原因,并提供了三步快速切换正式AppID的解决方案。通过注册正式小程序账号、修改项目配置和重新编译上传,开发者可以轻松解决上传按钮不可用的问题,确保小程序顺利上线。

weixin_29291185的博客 1578

使用podman 容器化安装DIFY

本文阐述了使用podman容器化安装DIFY的过程

wengad的博客 1902

Java 十六进制转十进制正负数

/**      * 十六进制转正负数      * (2个字节的)      */     public static double parseHex4(String num) {         if (num.length() != 4) {             throw new NumberFormatException("Wrong length: " + num.length(...

qq_32136827的博客 3638

R语言缺失值填补|插值法、均值法、邻近法

本文主要介绍如何利用R语言进行数值型缺失值的填补。主要使用zoo包中的na.aggregate() 、na.approx()、na.locf() 函数进行缺失值的均值填补、线性插值填补以及邻近值填补。

Mrrunsen的博客 3843

java 十六进制负数_Java 十进制和十六制之间的转化(负数的处理)

在一些情况下,我们需要将数字在十进制和十六制下互相转化。在Java中将十进制转化成十六进制非常的简单。int var = 324;String hex = Integer.toHexString(var);long lvar = 3243143432134L;String lhex = Long.toHexString(lvar);这样就可以得16进制的字符串了。当要从十六进制转化成十进制的时候也...

weixin_39788382的博客 1527

2024年 Flutter 面试题大全(2024.6.28持续更新中)

2024年 Flutter 面试题大全(持续更新中)

Code Metaverse 6671

基于STM32设计的环境监测系统(华为云IOT)_300

随着空气污染问题日益严峻,环境空气质量的监测变得愈加重要。为了解决这一问题,本项目设计并实现了一款基于STM32的空气质量监测设备,能够实时监测空气中的温湿度、二氧化碳浓度和甲醛浓度,并通过OLED显示屏展示数据。此外,设备支持通过WIFI模块将数据上传至云端,用户可以通过手机APP或Windows上位机查看实时数据。设备采用MQTT协议与华为云IOT物联网服务器进行数据通信,确保数据的实时性和可靠性。本项目还结合了低功耗设计和高灵敏度传感器,使得设备能够高效稳定地运行,并实现远程监控功能。

697

java integer转成负数_Java 十进制和十六制之间的转化(负数的处理)

在一些情况下,我们需要将数字在十进制和十六制下互相转化。在Java中将十进制转化成十六进制非常的简单。int var = 324;String hex = Integer.toHexString(var);long lvar = 3243143432134L;String lhex = Long.toHexString(lvar);这样就可以得16进制的字符串了。当要从十六进制转化成十进制的时候也...

weixin_42508215的博客 3351

【专栏必读】王道考研408数据结构+算法设计与分析万字笔记使用说明及章节导航

各位老铁思维导图在我整理完笔记后会放上去的,我需要根据王道的思维导图重新再做一遍 文章目录一:有关注意事项二:关于专栏三:学习建议四:各专栏导航(各位老铁别催,质量优先)(1)第一章:绪论(2)第二章:线性表(3)第三章:栈和队列第四章:串第五章:二叉树第六章:图 首先感谢王道大大(手动比心),很用心在做了,大家可以看其中两节是否符合胃口 (王道408考研数据结构)第五章树-第三节1:二叉树遍历(先序、中序和后序) (王道408考研数据结构)第五章树-第四节2:平衡二叉树(AVL)及其旋转 一:有.

快乐江湖的博客 5万+

Java 十进制和十六制之间的转化(负数的处理)___http://www.cnblogs.com/literoad/archive/2013/01/25/2875908.html

在一些情况下,我们需要将数字在十进制和十六制下互相转化。 在Java中将十进制转化成十六进制非常的简单。 int var = 324;String hex = Integer.toHexString(var);long lvar = 3243143432134L;String lhex = Long.toHexString(lvar);   这样就可以得16进制的字符串了。当要从十六进制转

a363722188的专栏 645

WINCC7.3破解文件

WINCC7.3硬件够破解文件,有需要的下载!WINCC7.3硬件够破解文件,有需要的下载!

复分析 阿尔福斯(Ahlfors) 第三版答案 英文

答案分为十章,有部分习题没有答案,全英文复分析阿尔福斯(Ahlfors) 第三版答案

Java使用bit array实现二进制,十进制,十六进制值之间的转换

如果读者还对bit数组还不太了解,可以去看一下我的另一篇文章,那里对bit数组和位运算都做了解释: http://blog.youkuaiyun.com/zimu666/article/details/8284906 二进制 二进制的表达非常简单,只有0和1两个值,又因为他在数字电路中非常容易实现和处理,所以现代计算机几乎全部使用二进制来做为基础运算方式. 二进制运算方式是逢2进1.一组二进制数的

zimu666的专栏 6716

jre9下载 jdk9

(Java SE Runtime Environment 9.0) 9.0u175 官方最新版 【x86|x64】

LeetCode 1017. 负二进制转换(负数进制转换)

1. 题目 给出数字 N,返回由若干 “0” 和 "1"组成的字符串,该字符串为 N 的负二进制(base -2)表示。 除非字符串就是 “0”,否则返回的字符串中不能含有前导零。 示例 1: 输入:2 输出:"110" 解释:(-2) ^ 2 + (-2) ^ 1 = 2 示例 2: 输入:3 输出:"111" 解释:(-2) ^ 2 + (-2) ^ 1 + (-2) ^ 0 = 3 示例...

Michael是个半路程序员 1162

数学建模模型总结

这是本人在两年内准备参加数学建模竞赛搜集到的模型资料,已经经过了本人的筛选和整理,希望能够对准备参加数学建模竞赛的学弟学妹们提供一些帮助!

二进制,十六进制,八进制 十进制的转换

进制转换是人们利用符号来计数的方法,包含很多种数字转换。进制转换由一组数码符号和两个基本因素(“基”与“权”)构成。 目录 1正数 ▪ 十进制--->二进制 ▪ 二进制--->十进制 ▪ 十进制--->八进制 ▪ 八进制--->十进制 ▪ 十进制--->十六进制 ▪ 十六进制--->十进制 ▪ 二进制--->八进制 ▪ 八进制--->二进制

dingyue2012的专栏 1825

蓝桥杯 十六进制转换十进制

蓝桥杯--------由蓝桥杯引起的关于制度转换问题的思考 试题 基础练习 十六进制转十进制 资源限制 时间限制:1.0s 内存限制:512.0MB 问题描述   从键盘输入一个不超过8位的正的十六进制数字符串,将它转换为正的十进制数后输出。   注:十六进制数中的10~15分别用大写的英文字母A、B、C、D、E、F表示。 样例输入 FFFF 样例输出 65535 提交代码 首先我的思路是:准备一个字典,当十六进制转换时,遇到字母可以转换成相应数字,接着由数字的计算,转换成十进制 代码如下: impor

weixin_44035979的博客 742
上一篇: Android 自定义标题栏(title栏)
下一篇: SpannableString 记录
gwpJava
博客等级 码龄14年 11粉丝 91原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值