回答
您可以使用Encoding.ASCII
.
GetBytes
到您的字符串转换为byte
阵列ASCII编码(每个字符取一个byte
)。然后,调用BitConverter.ToUInt32
将该字节数组转换为uint
。但是,由于@ R. Bemrose在评论中指出,uint
只有4 byte
s,因此您需要先对阵列进行一些分区。
uint如何代表4个字节的字符串? “ABCD”如何得到代表? – 2010-11-16 21:19:26
@whydna,[7位ASCII表](http://www.neurophys.wisc.edu/comp/docs/ascii/)用于在位表示和字符之间进行转换。因此,“ABCD”变成了“01000001 01000010 01000011 01000100”,其中十进制是“1094861636”,即“uint”将包含的值。 – jball 2010-11-16 21:23:21
太棒了。所以我只有1个问题。因此,我将字符串转换为Ascii字节数组,然后通过BitConvert.ToUint32,它为字符串“ABCD”返回值“1145258561”。把它转换成HEX我得到了“44434241”,这真是太棒了!除了一件事 - 为什么它倒退呢? (41 = A,42 = B等)。我敢肯定,它与大端的小端序有关 – 2010-11-16 21:38:00
看看Convert.ToUInt32(string, int)
。例如:
uint parsed = Convert.ToUInt32(str, 16);
根据评论,这不是他正在寻找的答案... – 2010-11-16 21:16:01
是的,因为他中途改变了这个问题。 – Femaref 2010-11-16 21:30:35
uint.Parse(hexString, System.Globalization.NumberStyles.HexNumber);
这将转换您的string
(用碱16表示)到uint
。
uint val = Convert.ToUInt32(str, 16);
见我的意见,但如果你想只转换ASCII字符串为十六进制,这是我怀疑:
public string HexIt(string yourString)
{
string hex = "";
foreach (char c in yourString)
{
int tmp = c;
hex += String.Format("{0:x2}", (uint)System.Convert.ToUInt32(tmp.ToString()));
}
return hex;
}
现在我想我明白你想要在评论bdukes答案。
如果你想为字符串中的每个字符使用hex
代码,你可以使用LINQ获取它。
var str = "ABCD";
var hex = str.Select(c => ((int)c).ToString("X"))
.Aggregate(String.Empty, (x, y) => x + y);
hex
将是一个字符串41424344
- 1. c#propertygrid从uint转换为字符串
- 2. 将字符串转换为uint in lang
- 3. C# - WinRT - 将IPv4地址从uint转换为字符串?
- 4. Qt/C++ - 将字符串时间戳转换为uint
- 5. C# - 将uint转换为byte []
- 6. 将-1转换为uint C#
- 7. C++ - 将字符串转换为字符
- 8. C#将字符串转换为数字
- 9. 无法将源类型'字符串'转换为目标类型'uint'错误c#
- 10. 不能转换UINT *为uint []
- 11. 如何将Objective-C字符串转换为C字符串?
- 12. Golang - 将uint转换为os.FileMode
- 13. 将UINT转换为WS_STRING
- 14. 将uint转换为颜色
- 15. 将枚举转换为uint
- 16. 将字符串转换为位图c#
- 17. C++将char转换为字符串
- 18. C#将Unicode转换为字符串
- 19. c#将字符串转换为变量
- 20. 将字符串转换为日期C++
- 21. 将字符串转换为System.guid c#
- 22. 将字符串转换为int在C++
- 23. 将字符串转换为smtpclient在c#
- 24. 将字符串转换为总和C#
- 25. C++ ::将ASCII值转换为字符串
- 26. 将C#货币转换为字符串
- 27. C:将int []转换为字符串
- 28. C#,将字符串转换为DateTimeOffset
- 29. 将字符串转换为long long C?
- 30. 将float转换为字符串c
注意:这原始的字符串是不是十六进制 – 2010-11-16 21:06:02
你是什么意思是不是十六进制ASCII ...表示是一个字符串,顺便说一句.. – 2010-11-16 21:06:55
见我的编辑新字符串 – 2010-11-16 21:07:27