尝试使用 CSDN 创作助手,自动生成代码

测试了如下:

1.函数用于将十六进制数据转换为字符串,C++ 

#include <iostream>
#include <sstream>
#include <bitset>
 
std::string hexToString(const std::string& hex) {
    std::stringstream ss;
    ss << std::hex << hex;
    std::bitset<8> bits(ss.str());
    std::string str(1, char(bits.to_ulong()));
    return str;
}
 
int main() {
    std::string hex = "68 65 6C 6C 6F";
    std::string str;
    std::stringstream ss(hex);
    while (ss.good()) {
        std::string substr;
        std::getline(ss, substr, ' ');
        str += hexToString(substr);
    }
    std::cout << str << std::endl;
    return 0;
}
 

2.正确显示串口接收十六进制数据。

跟单片机里的那个差不多了,可能是题目写得不够清晰的原因吧。

void USART1_IRQHandler(void) {
    if (USART_GetITStatus(USART1, USART_IT_RXNE) != RESET) {
        uint8_t data = USART_ReceiveData(USART1);
        if (data >= '0' && data <= '9') {
            data -= '0';
        } else if (data >= 'A' && data <= 'F') {
            data -= 'A';
            data += 10;
        } else if (data >= 'a' && data <= 'f') {
            data -= 'a';
            data += 10;
        } else {
            // 不是16进制字符,忽略
            return;
        }

        // 转换为ASCII字符
        data |= (data << 4);
        USART_SendData(USART1, data);
    }
}

int main(void) {
    // 初始化串口
    USART_InitTypeDef USART_InitStructure;
    USART_StructInit(&USART_InitStructure);
    USART_InitStructure.USART_BaudRate = 115200;
    USART_Init(USART1, &USART_InitStructure);
    USART_Cmd(USART1, ENABLE);

    while (1) {
        // 接收并显示数据
        if (USART_GetFlagStatus(USART1, USART_FLAG_RXNE) == SET) {
            uint8_t data = USART_ReceiveData(USART1);
            USART_SendData(USART1, data);
        }
    }
}
 

        不知道是不是助手代码库里的,如果是,则助手能否算得上好用的关键就是:

助手如何完全理解作者输入的中文意思,就成了助手最需要的本事。直白点说吧,比较于中文网页搜索引擎,CSDN的这个助手可能难度要高一点,因为要完全理解中文的具体意思。而中文网页引擎则把类似的搜索结果罗列了出来。懂了中文意思,就可以在代码数据库将内容取出来。

        如果不是原先准备的,而是创作助手动态地生成的代码,那么,给创作助手写代码的人就可能要有写一个编译器的工作量了,语法自己定的,类似那什么易语言的。

给创作助手点个赞吧

 

猜你喜欢

转载自blog.csdn.net/wastonpu/article/details/131097313