gpt4 book ai didi

unicode - 如何将 UTF-16 转换为 ASCII

转载 作者:行者123 更新时间:2023-12-04 17:57:37 27 4
gpt4 key购买 nike

我正在用 MIPS 汇编语言编写一个子程序来将 ASCII 转换为 UTF-16,反之亦然。但是,我找不到如何转换它的任何技巧。

感谢您的任何想法。

最佳答案

伪代码,假设您的字节是八位字节并且不需要零终止:

从 ASCII 到 UTF-16 的转换

  • 给定一个长度为 n(以字节为单位)的 ASCII 输入字符串,该字符串按顺序存储在地址 p 的内存中。
  • 分配 2 × n 字节的内存;令该内存的起始地址为 q。
  • 当 n 大于零时:
  • 检查 p 处的字节是否为有效的 ASCII 字符。如果不使用校验和,最高有效位必须为零,否则它必须是正确的校验和。如果字节无效,则发出错误。
  • 将 p 处的字节零扩展到 q 处的 16 位字。这是如何完成的取决于指令集;例如,x86 有 MOVZX .您可能还需要注意正确的字节顺序。
  • 将 p 增加 1。
  • 将 q 增加 2。
  • 将 n 减 1。

  • 从 UTF-16 到 ASCII 的无损转换
  • 给定一个长度为 n(以代码单元为单位)的 UTF-16 输入字符串,该字符串按顺序存储在地址 p 的内存中。
  • 分配n个字节的内存;令该内存的起始地址为 q。
  • 当 n 大于零时:
  • 检查 p 处的 16 位字是否代表有效的 ASCII 字符。九个最高有效位必须为零,否则字符无法用 ASCII 表示。如果该词无效,则发出错误。
  • 将 p 处 16 位字的最低有效字节移动到 q 处的字节。
  • 如果需要,向 q 处的字节添加校验和。
  • 将 p 增加 2。
  • 将 q 增加 1。
  • 将 n 减 1。
  • 关于unicode - 如何将 UTF-16 转换为 ASCII,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5364977/

    27 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com