You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

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

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.06 18:39:03