c# 字符串如何转十六进制而非ascii码

例如:我在textbox输入一个dd ,我想把它存储为0xdd这样子的十六进制,有没有大神知道呢

你大概弄错了,我们平时所指的十六进制都是指十六进制字符串,所以你输入dd,与0xdd是没有任何区别的,都是普通的字符串,只需要在前面附加上"0x"就可以了,实际上我们平时在使用的时候,基本上不也会去存0x这种东西。追问

不对,你这样说的话,dd就占了两个字节,而0xdd是一个字节好不

追答

注意,我说的是你提到的十六进制,如果你要存0xdd,也就是一字节的数值,那实际上就是类似于
byte bt=Convert.ToByte("dd", 16);
它是以二进制存储的,不存在十六进制之类的说法,仅仅只有当你把bt再次转换为十六进制字符串"dd",再自己在前面附加字符串"0x",才会得到"0xdd"这样的东西 。

追问

0xdd我只是用了表示他是十六进制。。

追答

我想已经说的很清楚了,除非你把它存成字符串,否则是没办法存储为0xdd这样的格式的。

追问

额,可能我是用了单片机的方式来想这个问题了

追答

单片机中的C语言本质上仍然没有区别,你只需要记住十六进制的就一定是十六进制字符串,所谓的0xdd实际上就是一个十进制值为221的字节

温馨提示:答案为网友推荐,仅供参考
第1个回答  2014-07-11
// 转为字节数组 Default 当前系统的编码
// 相关的有 ASCII, UTF-8,UTF-7,UTF-32等等一百多个编码方式
var bytes = Encoding.Default.GetBytes(txtbox.Text);
// 相同的可以使用来解码
var bytes = Encoding.GetEncoding("GB2312").GetBytes(txtbox.Text);

第2个回答  2014-07-11
Convert.ToString(16, 16)结果是0xF,数据存储上不需要做特殊处理,存10进制就行,用的时候转成16进制输出即可。
第3个回答  2014-07-17
stirng a = textBox1.Text.ToString("X");
第4个回答  2014-07-11
这位大神syht2000,已经说的很清楚了,很对,你要存成字符串就可以
相似回答