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

如何将整数转换为十六进制格式的USB厂商ID、产品ID?

十进制整数转USB VID/PID十六进制格式方案

转换规则

USB厂商ID(VID)、产品ID(PID)均为16位无符号整数,转换后要求为带0x前缀的4位大写十六进制格式,不足4位时在开头补前导0,转换逻辑为标准十进制转十六进制运算:

  1. 将十进制整数反复除以16,记录每次的余数
  2. 余数0-9对应十六进制字符0-9,余数10-15对应A-F
  3. 将所有余数倒序排列,不足4位时开头补0,最后添加0x前缀即可

示例验证

和你给出的转换结果完全匹配:

  • 9025转十六进制得到2341,补前缀后为0x2341
  • 5824转十六进制得到16C0,补前缀后为0x16C0
  • 1155转十六进制得到483,补1位前导0后为0483,补前缀后为0x0483

安卓端实现代码

你可以直接在安卓项目中集成以下方法,无需依赖第三方工具:

Kotlin 实现

fun intToVidPidHex(value: Int): String {
    // 只保留16位有效位,格式化输出4位大写十六进制
    return "0x%04X".format(value and 0xFFFF)
}

Java 实现

public static String intToVidPidHex(int value) {
    // 屏蔽高位溢出值,输出符合规范的VID/PID格式
    return String.format("0x%04X", value & 0xFFFF);
}

之前工具不符的原因

你使用的字符串转十六进制工具,是将输入的内容当做文本字符串,逐字符转换为对应ASCII值的十六进制表示,和整数进制转换是完全不同的逻辑,所以输出结果不符合预期。如果需要使用在线工具,选择「十进制整数转十六进制」类的工具即可,不要使用字符串相关的转换工具。

内容的提问来源于stack exchange,提问作者Wai Yan Hein

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.16 04:06:09