小工具知识网

当前位置: 首页 > 行业知识 > 华为编程题目(实时更新)

行业知识

华为编程题目(实时更新)

2026-10-27 17:23:34 来源:互联网转载

1.大小端整数

计算机中对整型数据的表示有两种方式:大端序和小端序,大端序的高位字节在低地址,小端序的高位字节在高地址。例如:对数字 65538,其4字节表示的大端序内容为00 01 00 02,小端序内容为02 00 01 00。

现输入一个字符串表示的十进制整数(含负数),请分别输出以4字节表示的大端序和小端序:

  • 负数以补码形式表示。
  • 如果输入的整数的值超出 [-2^31, 2^32) 范围,则输出字符串overflow。
    解答要求

    时间限制: C/C++ 1000ms, 其他语言:2000ms

    内存限制: C/C++ 64MB, 其他语言:128MB

    输入

    十进制整数,以负号-开头表示负数,其它为正整数;数字长度范围:[1,32]。

    输入数字不含前导零。

    输出

    大端序 + \n + 小端序;或字符串overflow。

    大端序和小端序的输出格式:每个字节以两位16进制数字表示(16进制数中A-F要大写),字节之间以单空格分隔。

    样例1

    复制输入:

    -10

    复制输出:

    FF FF FF F6 F6 FF FF FF

    解释:

    含负号表示为负整数。

    该负整数的补码表示为 FF FF FF F6,其对应大端序和小端序内容分别为FF FF FF F6 和 F6 FF FF FF。

    按输出格式要求输出其大端序和小端序内容,中间加换行符。

    样例2

    复制输入:

    4027691818

    复制输出:

    F0 11 B3 2A 2A B3 11 F0

    解释:

    输入 4027691818 为正整数,按输出格式要求输出其大端序和小端序内容,中间加换行符。

    样例3

    复制输入:

    1234567890123456789012345678900

    复制输出:

    overflow

    解释:

    输入数字超过[-2^31, 2^32) 范围,因此输出 overflow 。

    C++代码:
    #include #include #include #include #include #include using namespace std;class Solution {public:    // 待实现函数,在此函数中填入答题代码;    string GetHexString(long long input)    {// Check for overflow        if (input = 4294967296LL) {            return "overflow";        }        // Convert input to unsigned int        unsigned int value = static_cast(input);        // Convert unsigned int to big endian and little endian strings        stringstream bigEndianStream;        bigEndianStream {"idle", -1}, {"busy", 1}, {"no-response", 2}, {"unreachable", 3}};                // 存储用户设置的呼叫转移        for (auto &reg : regCallForwardNums) {            callForwards[reg.first] = reg.second;        }                if (status == "idle" && callForwards.count(0) == 0) {            // 用户状态为idle,且无无条件转移type=0            return "success";        }        if (callForwards.count(0)) {            // 检查是否有无条件转移            return callForwards[0];        } else if (statusMap.count(status) && callForwards.count(statusMap[status])) {            // 检查用户状态对应的转移            return callForwards[statusMap[status]];        } else if (callForwards.count(4)) {            // 检查默认转移            return callForwards[4];        }                // 没有匹配的转移则失败        return "failure";    }};// 以下为考题输入输出框架,此部分代码不建议改动inline string ReadLine(){    string line;    getline(cin, line);    return line;}inline vectorpublic:    // 待实现函数,在此函数中填入答题代码;    int GetCountOfSubString(const string &input)    {        if (input.empty())         {            return 0;        }         int n = input.size();        int lastPos[26];        fill_n(lastPos, 26, -1); // 初始化每个字符的最后位置为-1        long long totalCount = 0; // 结果可能很大,使用更大的存储类型        int start = 0; // 窗口的起始位置        for (int end = 0; end 

上一篇:购买服务器后怎么用?

下一篇:toad怎么保存新服务器?