题解 | #进制转换#

进制转换

https://www.nowcoder.com/practice/8f3df50d2b9043208c5eed283d1d4da6

解题思路

  1. 读取十六进制字符串输入(以0x开头)
  2. 去掉前缀"0x"后进行进制转换
  3. 可以使用以下方法:
    • 使用语言内置的进制转换函数
    • 或手动实现:从右往左遍历字符串,每位乘以16的对应次方并累加
  4. 输出十进制结果

代码

#include <iostream>
#include <string>
using namespace std;

int main() {
    string hex;
    cin >> hex;
    
    // 去掉"0x"前缀
    hex = hex.substr(2);
    
    // 将十六进制转换为十进制
    int decimal = 0;
    for(char c : hex) {
        decimal *= 16;
        if(c >= '0' && c <= '9') {
            decimal += c - '0';
        } else {
            decimal += (toupper(c) - 'A' + 10);
        }
    }
    
    cout << decimal << endl;
    return 0;
}
import java.util.Scanner;

public class Main {
    public static void main(String[] args) {
        Scanner sc = new Scanner(System.in);
        String hex = sc.nextLine();
        
        // 方法1:使用Integer内置方法
        System.out.println(Integer.parseInt(hex.substring(2), 16));
        
        /* 方法2:手动实现
        hex = hex.substring(2);  // 去掉0x
        int decimal = 0;
        for(char c : hex.toCharArray()) {
            decimal = decimal * 16 + 
                     (Character.isDigit(c) ? c - '0' : Character.toUpperCase(c) - 'A' + 10);
        }
        System.out.println(decimal);
        */
    }
}
# 读取输入,去掉0x前缀
hex_str = input().strip()[2:]

# 方法1:使用int内置函数
print(int(hex_str, 16))

'''
# 方法2:手动实现
decimal = 0
for c in hex_str:
    decimal *= 16
    if c.isdigit():
        decimal += int(c)
    else:
        decimal += ord(c.upper()) - ord('A') + 10
print(decimal)
'''

算法及复杂度

  • 算法:进制转换,按位计算或使用语言内置函数
  • 时间复杂度: - 其中n为十六进制字符串的长度
  • 空间复杂度: - 只需要常数级额外空间
全部评论

相关推荐

刚刷到字节跳动官方发的消息,确实被这波阵仗吓了一跳。在大家还在纠结今年行情是不是又“寒冬”的时候,字节直接甩出了史上规模最大的转正实习计划——ByteIntern。咱们直接看几个最硬的数,别被花里胡哨的宣传词绕晕了。首先是“量大”。全球招7000多人是什么概念?这几乎是把很多中型互联网公司的总人数都给招进来了。最关键的是,这次的资源分配非常精准:研发岗给了4800多个Offer,占比直接超过六成。说白了,字节今年还是要死磕技术,尤其是产品和AI领域,这对于咱们写代码的同学来说,绝对是今年最厚的一块肥肉。其次是大家最关心的“转正率”。官方直接白纸黑字写了:整体转正率超过50%。这意味着只要你进去了,不划水、正常干,每两个人里就有一个能直接拿校招Offer。对于2027届(2026年9月到2027年8月毕业)的同学来说,这不仅是实习,这简直就是通往大厂的快捷通道。不过,我也得泼盆冷水。坑位多,不代表门槛低。字节的实习面试出了名的爱考算法和工程实操,尤其是今年重点倾斜AI方向,如果你简历里有和AI相关的项目,优势还是有的。而且,转正率50%也意味着剩下那50%的人是陪跑的,进去之后的考核压力肯定不小。一句话总结:&nbsp;27届的兄弟们,别犹豫了。今年字节这是铁了心要抢提前批的人才,现在投递就是占坑。与其等到明年秋招去千军万马挤独木桥,不如现在进去先占个工位,把转正名额攥在手里。
喵_coding:别逗了 50%转正率 仔细想想 就是转正与不转正
字节7000实习来了,你...
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务