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

C# 如何给十六进制字符串添加0x前缀并转换为int32类型

首先明确核心认知:int32 是纯数值类型,本身不存储任何进制格式信息,你要求的 0x0030FF 是数值转为十六进制字符串时的展示格式,不属于int32类型的固有属性。

实现的通用逻辑如下:

  • 第一步:将原始十六进制字符串解析为int32类型,绝大多数编程语言的十六进制解析函数都支持直接解析不带0x前缀的字符串,无需手动拼接前缀;如果你的场景要求必须先加0x前缀再解析,只要在解析时指定进制为16即可,两种方式解析得到的int32值完全一致
  • 第二步:需要展示0x0030FF格式时,将int32值格式化为带0x前缀、固定6位大写的十六进制字符串即可

常见编程语言实现示例

Python

import ctypes
origin_str = "0030FF"
# 解析为int32类型
num = ctypes.c_int32(int(origin_str, 16)).value
# 格式化为要求的字符串形式
formatted = f"0x{num:06X}"
print(formatted) # 输出:0x0030FF

Go

package main

import (
	"fmt"
	"strconv"
)

func main() {
	originStr := "0030FF"
	// 解析为int32类型
	num64, _ := strconv.ParseInt(originStr, 16, 32)
	num := int32(num64)
	// 格式化为要求的字符串形式
	fmt.Printf("0x%06X\n", num) // 输出:0x0030FF
}

C#

string originStr = "0030FF";
// 解析为int32类型
int num = Int32.Parse(originStr, System.Globalization.NumberStyles.HexNumber);
// 格式化为要求的字符串形式
string formatted = $"0x{num:X6}";
Console.WriteLine(formatted); // 输出:0x0030FF

JavaScript/TypeScript

const originStr = "0030FF";
// 解析为数值(JS无原生int32,可通过TypedArray实现转换)
const num = new Int32Array([parseInt(originStr, 16)])[0];
// 格式化为要求的字符串形式
const formatted = `0x${num.toString(16).toUpperCase().padStart(6, '0')}`;
console.log(formatted); // 输出:0x0030FF

内容的提问来源于stack exchange,提问作者thelucky

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.10 07:36:03