C# 如何添加十六进制数?
我试图用python到C实现以下几行代码# 之后,我需要将C# 如何添加十六进制数?,c#,C#,我试图用python到C实现以下几行代码# 之后,我需要将final_reg写入一个寄存器,该寄存器在python中是这样写的 serial.write(int('A', 16), int(final_reg, 16)) 但是在C中,我使用一个名为write\u word\u segment\u addr()的函数实现了我的serial.write;例如,如果我想将90写入A中,我现在这样写: mem.write_word_segment_addr(0x7c032, 0x00000090);
final_reg
写入一个寄存器,该寄存器在python中是这样写的
serial.write(int('A', 16), int(final_reg, 16))
但是在C中,我使用一个名为write\u word\u segment\u addr()的函数实现了我的serial.write
;例如,如果我想将90
写入A
中,我现在这样写:
mem.write_word_segment_addr(0x7c032, 0x00000090); //A
如何将增益st
转换为hex
,然后添加400020
,然后将其转换为上面所示的0x格式,以便写入寄存器?在C的情况下,可以使用字符串插值:
final_reg = gain_st.ToString("x") + "400020";
mem.write_word_segment_addr(10, int.Parse(final_reg, NumberStyles.HexNumber));
如果要将final_reg
转换为整数,请使用convert
:
write_word_segment_addr(Convert.Int32("A", 16), Convert.Int32(final_reg, 16));
看看这篇文章:到十六进制string
:strings=intValue.ToString(“x”)代码>返回到int
:intv=Convert.ToInt32(s,16)
serial.write
这是我在python中使用的方法,我已经用C重新编写了一个方法,名为write\u word\u segment\u addr
。我需要在期末考试前添加一个0x
,为什么需要添加0x
0xa
和10
是完全相同的整数。
// 0x is not required for further conversion and can be dropped
string final_reg = $"0x{gain_st:x}{400020}";
write_word_segment_addr(Convert.Int32("A", 16), Convert.Int32(final_reg, 16));