首页 > 其他分享 >牛客网测试题 把十六进制数字转换为十进制数字

牛客网测试题 把十六进制数字转换为十进制数字

时间:2024-09-07 17:36:43浏览次数:10  
标签:十六进制 数字 int hexSrcStr 牛客 characterIntegerHashMap put length charAt

 1 /**
 2  * 把十六进制数字转换为十进制数字
 3  * @param hexSrcStr
 4  * @return
 5  * 170
 6  */
 7 public static String convertHex2Decimal(String hexSrcStr){
 8     if (hexSrcStr==null || hexSrcStr.trim().length()==0){
 9         return null;
10     }
11     if (!hexSrcStr.startsWith("0x")){
12         System.out.println("十六进制数字输入非法!");
13         return null;
14     }
15     String substring1 = hexSrcStr.substring(2);
16     for (int i = 0; i < substring1.length(); i++) {
17         char charAt = substring1.charAt(i);
18         if (!(Character.isDigit(charAt) || (Character.isUpperCase(charAt) && charAt >= 'A' && charAt <= 'F'))){
19             return null;
20         }
21     }
22 
23     HashMap<Character, Integer> characterIntegerHashMap = new HashMap<>();
24     characterIntegerHashMap.put('A',10);
25     characterIntegerHashMap.put('B',11);
26     characterIntegerHashMap.put('C',12);
27     characterIntegerHashMap.put('D',13);
28     characterIntegerHashMap.put('E',14);
29     characterIntegerHashMap.put('F',15);
30 
31     // 0xAA
32     String substring = hexSrcStr.substring(2);
33     int length = substring.length();
34     int sum=0;
35     int ret=1;
36     for (int i = length-1; i >=0 ; i--) {
37         if (i==0){
38             ret=1;
39         }else {
40             for (int j =0;j<i;j++) {
41                 ret*=16;
42             }
43         }
44 
45         char charAt = substring.charAt((length-1)-i);
46         Integer integer=0;
47         Integer integer1=0;
48         if (Character.isDigit(charAt)){
49             String charStr = String.valueOf(charAt);
50             integer = Integer.valueOf(charStr);
51             integer*=ret;
52         }else if (Character.isUpperCase(charAt)){
53             integer1 = characterIntegerHashMap.get(charAt);
54             integer1*=ret;
55         }
56 
57         if (Character.isDigit(charAt)){
58             sum+=integer;
59             ret=1;
60         }else if (Character.isUpperCase(charAt)){
61             sum+=integer1;
62             ret=1;
63         }
64     }
65 
66     return String.valueOf(sum);
67 }

 

标签:十六进制,数字,int,hexSrcStr,牛客,characterIntegerHashMap,put,length,charAt
From: https://www.cnblogs.com/liaowanzhong/p/18401943

相关文章

  • 《数字图像处理(面向新工科的电工电子信息基础课程系列教材)》出版1周年
    去年为廖老师的甲子而出书,时光荏苒如白驹过隙,转眼出版一周年了。这本书能有这样的品质,与廖老师的指导密不可分,尤其是在他擅长的统计学领域。巩固了统计学基础,对我深入理解当前最热门的生成模型(如VAE、扩散模型)起到了至关重要的作用。最让我感动的是,最初他给我指出问题,我不......
  • LeetCodeTest算法测试 传递一个数组和一个特定的目标整型数字,返回的两个数组元素相加
    1importjava.util.ArrayList;2importjava.util.List;34publicclassLeetCodeTest{5publicstaticvoidmain(String[]args){67int[]intArr=newint[]{2,7,11,15};8List<CustomerIntIndex>customerIntIndexL......
  • 猜数字游戏
    #include<stdio.h>#include<stdlib.h>#include<time.h>voidmenu(){ printf("*******************************\n"); printf("**************1.play***********\n"); printf("**************0.exit*********......
  • 魔珐科技受邀参与外滩大会:以3D数字人AIGC产品赋能大资管行业,重塑金融服务边界
    在人工智能浪潮的推动下,金融行业正经历着前所未有的场景革命。2024年Inclusion·外滩大会作为行业交流的盛会,汇聚了众多学者、专家及企业领袖,共同探讨AI技术在多领域的深度应用,特别是其在金融行业中的革新潜力。在外滩大会上,魔珐科技以3D数字人AIGC全栈技术及产品解决方案亮相......
  • 34465A-61/2 数字万用表(六位半)
    34465A-61/2数字万用表(六位半)文章目录34465A-61/2数字万用表(六位半)前言一、测DC/AC电压二、测DC/AC电流四、测电阻五、测电容六、测二极管七、保存截图流程前言1、6位半数字万用表通常具有200,000个计数器,可以显示最大为199999的数值。相比普通数字万用......
  • 基于Video-Retalking-Gradio的AI数字人
    随着数字内容的普及,如何在视频中实现高精度的音频与唇形同步成为一个重要课题。传统方法通常需要大量的人工干预和调整,效果也往往不尽如人意。为了应对这一挑战,VideoReTalking系统应运而生。由西安电子科技大学和腾讯AI实验室的研究人员联合开发,VideoReTalking是一个创新......
  • 基于Easy-Wav2lip-Gradio的AI数字人
    数字人技术近年来在多个领域得到广泛应用,从虚拟主播到电影特效,都需要精确的音视频同步技术来实现逼真的效果。传统的嘴型同步技术往往面临着准确性不高、处理速度慢等问题。为了解决这些问题,原有的Wav2Lip项目应运而生。Wav2Lip通过人工智能技术,实现了音频和视频的高精度同......
  • ACM中的AC题(BFS,三维vis,牛客小白月赛)
    题目来源:https://ac.nowcoder.com/acm/contest/88878/D//题意:迷宫中,两个人,走的每一步两个人的方向都是相反的,问两个人都走到地图中‘@’,最少的步数(地图上多个‘@’)。//思路:难点就在可以一个人到了,然后另一个人再独自走,就不用考虑到了那个人了。说明一个人独自走是可能会走重复......
  • 数字asic流程实验(EX2)Spyglss Lint
    SpyglassLint工具可以用于RTL代码检查,包括了语法检查,位宽不匹配检查,综合性检查等。尽管我们知道DesignCompiler也具备Lint功能,但Spyglass作为专用Lint工具有着更好的性能。一般SpyglassLint操作可以插入到RTL编写阶段,在综合前对代码质量进行检查。这里简单介绍一下Spyglass的......
  • 数字电子技术-进制
    目录数制二进制八进制十六进制数制    比如十进制,英文为decimal,所以又简称d。数码为从0到9,逢10进1。数码所处位置不同代表的值不同,比如1432就是1的10的四次方加上4的10的3次方等。这样的值(10的三次方)就成为它的权,得到的和为按权展开值。二进制    ......