C语言中如何将unsigned short类型值7273转换为ASCII字符HI
实现方法说明
完全可以实现,针对题目要求k赋值为7273的场景,最直接的实现逻辑是拆分十进制数值的前后两位:
符合题目要求的实现代码
#include <stdio.h> int main() { unsigned short i = 72; unsigned short j = 73; unsigned short k = 7273; // 原i、j打印逻辑 printf("%c%c\n",(char)i, (char)j); // k的打印逻辑:拆分十进制前后两位得到两个ASCII值 printf("%c%c\n", (char)(k / 100), (char)(k % 100)); return 0; }
拓展场景(字节存储拼接实现)
如果你是希望把两个ASCII字符直接存在unsigned short的两个字节空间里(不限制k的赋值为7273),可以用位运算拆分高低字节实现:
#include <stdio.h> int main() { // 0x48对应'H'、0x49对应'I',拼接后的16进制值为0x4849,对应十进制18505 unsigned short k = 0x4849; // 右移8位取高字节,和0xFF按位与取低字节 printf("%c%c", (char)(k >> 8), (char)(k & 0xFF)); return 0; }
注意这种实现和CPU的大小端模式有关,如果是小端架构设备,需要调整高低字节的读取顺序。
内容的提问来源于stack exchange,提问作者vengy
相关产品推荐
相关产品推荐

