首页 新闻 会员 周边

进制问题!!

0
悬赏园豆:5 [已解决问题] 解决于 2014-09-03 09:05

 byte temp = Convert.ToByte("255", 16);

这个为什么错了?

我要把255转换16进制 

s_p的主页 s_p | 初学一级 | 园豆:138
提问于:2014-09-02 18:35
< >
分享
最佳答案
0

http://msdn.microsoft.com/zh-tw/library/vstudio/c7xhf79k.aspx

你的字符串“255”超出了字节的范畴。

16禁止的字节字符串只能是00-ff,而你用了255。

如果你的“255”是十进制,就把16修改为10。

收获园豆:4
519740105 | 大侠五级 |园豆:5810 | 2014-09-02 18:45

后面的那个参数16是说明 的是第一个参数是16进制对吧?

s_p | 园豆:138 (初学一级) | 2014-09-02 18:47

@s_p: 对。

519740105 | 园豆:5810 (大侠五级) | 2014-09-02 18:47

@519740105: 但是这样也不对啊

byte temp = Convert.ToByte("255", 10); 这个temp现在还是255 我要的是FF

s_p | 园豆:138 (初学一级) | 2014-09-02 18:48

@s_p: temp表示的是数值,当然是255,你想要FF?

使用format:

string.Format("{0:x2}", temp)

试下。

519740105 | 园豆:5810 (大侠五级) | 2014-09-02 18:49

@519740105: 他是字符串呢 那个我知道我要byte的 FF

s_p | 园豆:138 (初学一级) | 2014-09-02 18:50

@s_p: byte类型,十进制的255难道不是你想要的十六进制0xFF?

Chielo Newctle | 园豆:177 (初学一级) | 2014-09-02 20:01

@s_p: 255就是值,干嘛一定要ff来表示?如 @Chielo Newctle 所言,如果你想在代码书写上用十六进制,就用 0xff 来表示。

或者,你是说想看到内存显示的值是十六进制的?这个在调试的时候,跟踪数据,按右键可以转换。但即便这样,也没有你这样写代码的。

519740105 | 园豆:5810 (大侠五级) | 2014-09-02 21:00
其他回答(2)
0

byte temp = Convert.ToByte("255", 10);///按照十进制转换成byte对象

string hexstr=temp.ToString("X2");//输出十六进制的字符串形式

二进制/八进制/十六机制和十进制的表现形式只是体现在字符串上.byte对象是相同的.

收获园豆:1
贪心狸猫 | 园豆:872 (小虾三级) | 2014-09-03 08:46
0

Byte类型的FF好像就是255,他没有FF中形式的表示的

三国郭海 | 园豆:280 (菜鸟二级) | 2014-09-03 09:00
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册