首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何在C中将字符ASCII转换为十六进制等价?

如何在C中将字符ASCII转换为十六进制等价?
EN

Stack Overflow用户
提问于 2015-01-27 02:16:51
回答 1查看 10.4K关注 0票数 0

因此,基本上,我正在编写代码来通过微控制器控制LCD。(atmega 32)我的main方法中包含以下内容:

代码语言:javascript
复制
unsigned char str1[9] = "It Works!";
sendString(str1);

下面是我的sendString方法:

代码语言:javascript
复制
// Converts each char to hex and sends to LCD
void sendString(unsigned char *string){ 


    sendCommand(0x01); // Clear screen 0x01 = 00000001
    _delay_ms(2);
    sendCommand(0x38); // Put in 8-bit mode
    _delay_us(50);
    sendCommand(0b0001110); // LCD on and set cursor off
    _delay_us(50);

    //For each char in string, write to the LCD
    for(int i = 0; i < sizeof(string); i++){
        convertASCIIToHex(string[i]);
    }
}

然后,sendString方法需要转换每个字符。这是我到目前为止所知道的:

代码语言:javascript
复制
unsigned int convertASCIIToHex(unsigned char *ch)
{
    int hexEquivilent[sizeof(ch)] = {0};

    for(int i = 0; i < sizeof(ch); i++){
        // TODO - HOW DO I CONVERT FROM CHAR TO HEX????
    }

    return hexEquivilent;
 }

那么我该如何进行转换呢?我对C语言完全陌生,正在慢慢地学习。我感觉这一切都错了,因为我在某处读到,char实际上是以8位整数的形式存储的。如何让我的方法返回每个输入字符的十六进制值?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2015-01-27 02:43:38

在C中,char是一个8位带符号的整数,你可以用十六进制来表示它。在下面的代码行中,a、b和c具有相同的值,即一个8位整数。

代码语言:javascript
复制
char a = 0x30;  //Hexadecimal representation
char b = 48;    //Decimal representation
char c = '0';   //ASCII representation

我认为你需要的只是发送字符串的字符,而不是任何十六进制的转换。一个问题是您不能使用sizeof()来获取字符串的长度。在C中,字符串以NULL结尾,所以您可以迭代它,直到找到它。试试这个:

代码语言:javascript
复制
// Converts each char to hex and sends to LCD
void sendString(unsigned char *string){ 


    sendCommand(0x01); // Clear screen 0x01 = 00000001
    _delay_ms(2);
    sendCommand(0x38); // Put in 8-bit mode
    _delay_us(50);
    sendCommand(0b0001110); // LCD on and set cursor off
    _delay_us(50);

    //For each char in string, write to the LCD
    for(int i = 0; string[i]; i++){
        sendCommand(string[i]);
    }
}
票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/28156188

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档