当前位置: 首页 > article >正文

算法-10进制转换成16进制,负数用补码表示

给定一个整数,编写一个算法将这个数转换为十六进制数。对于负整数,我们通常使用 补码运算 方法。

答案字符串中的所有字母都应该是小写字符,并且除了 0 本身之外,答案中不应该有任何前置零。

注意: 不允许使用任何由库提供的将数字直接转换或格式化为十六进制的方法来解决这个问题。

示例 1:

输入:num = 26
输出:"1a"

示例 2:

输入:num = -1
输出:"ffffffff"

提示:

  • -231 <= num <= 231 - 1


class Solution {
    public static String toHex(int num) {
        //0
        if(num==0)
        {
            return "0";//等于0直接返回
        }
        long newNum;
        if(num>0)
        {
             newNum=num;//大于0直接赋值
        }else
        {
             newNum=(long)Math.pow(2,32)+num;//小于0进行编译求补码 用long型,防止溢出
        }
        StringBuffer sb=new StringBuffer();//存字符串
        while (newNum>0)
        {
            long c1= newNum%16;//余数
            char c2;//转16进制存储
            if(c1<10)
            {
                c2=(char) (c1+'0');
            }else
            {
                c2=(char) (c1-10+'a');
            }
            sb.append(c2);//字符串拼接
            newNum=newNum/16;
        }
       return sb.reverse().toString();
    }

    public static void main(String[] args) {
        System.out.println(toHex(-2));
    }
}

 


http://www.kler.cn/a/466074.html

相关文章:

  • 一、二极管(模电理论篇)
  • ubuntu安装firefox
  • aardio —— 改变按钮文本颜色
  • Node.js应用程序遇到了内存溢出的问题
  • IP5385应用于移动电源快充方案的30W到100W大功率电源管理芯片
  • 服务器开发 的编程环境(programming environment)核心知识
  • Linux下部署ElasticSearch集群
  • 基于SpringBoot和Thymeleaf的仿小米电商系统源码下载与安装指南-幽络源
  • Win11+WLS Ubuntu 鸿蒙开发环境搭建(二)
  • DVWA靶场文件上传漏洞全级别通关及源码深度解析
  • 使用rknn进行yoloV8部署(C++)
  • 六种主流服务器的选择与使用
  • 【机器学习】由浅入深学习网格搜索
  • 158页精品PPT | 大型研发制造集团信息化IT规划整体方案
  • React 中结合 antd 的 Input 组件实现防抖输入
  • C# 在PDF中添加和删除水印注释 (Watermark Annotation)
  • nginx配置 - 资源参数配置(性能优化)
  • VSCode下配置Blazor环境 断点调试Blazor项目
  • 深入浅出 Vue 3:新特性与最佳实践
  • STM32-BKP备份寄存器RTC实时时钟