Project1

标题: 字符串怎么化成16进制的数字? [打印本页]

作者: secondsen    时间: 2009-10-28 11:56
标题: 字符串怎么化成16进制的数字?
本帖最后由 secondsen 于 2009-10-28 20:33 编辑

自己解决了。。。。
作者: 123955763    时间: 2009-10-28 14:30
提示: 作者被禁止或删除 内容自动屏蔽
作者: secondsen    时间: 2009-10-28 14:36
你少了反斜杠,另\377是八进制的表示方法
再问个问题怎么吧0xFF再变回"\377"?
作者: 123955763    时间: 2009-10-28 14:57
提示: 作者被禁止或删除 内容自动屏蔽
作者: secondsen    时间: 2009-10-28 15:43
"\377"就是一个字符啊用FF来存的这是八进制。十进制是255。
作者: secondsen    时间: 2009-10-28 16:23
这就相当于ascii码啊,用什么数存这个字符就把这个数写出来,另一个问题就是把数在写成他代表的字符
作者: 神思    时间: 2009-10-28 19:22
本帖最后由 神思 于 2009-10-28 19:44 编辑

先转10 再转16
  1. def _8to16_str(str)
  2.     temp = str.split(//)
  3.     int = 0
  4.     for i in 0...temp.size
  5.       int += ((temp[i].to_i) * (8 ** ((temp.size - 1) - i)))
  6.     end
  7.     return int.to_s(16)
  8.   end
复制代码
p _8to16_str("377") # => ff
作者: secondsen    时间: 2009-10-28 20:03
不是"377" 是 "\377"呐
作者: 神思    时间: 2009-10-28 20:15
晕。这有区别么?
作者: secondsen    时间: 2009-10-28 20:28
本帖最后由 secondsen 于 2009-10-28 20:32 编辑

靠自己。。

  1. class String
  2.   def to16
  3.     s = ""
  4.     self.each_byte do |b|
  5.       s += b.to_s(16)
  6.     end
  7.     return s
  8.   end
  9. end

  10. a = "\377"
  11. p a.to16 #=> "ff"
复制代码

作者: secondsen    时间: 2009-10-28 20:43
"\141"和"a"没有区别。。。但是  "141"和"a"可就完全不一样了阿。。。

我另一个问题也有答案了
Integer#chr
作者: secondsen    时间: 2009-10-28 20:45
回神思

"141"和"a"有没有区别?? 而"a","\141"没有区别。。。

另一个问题有答案了
Integer#chr
作者: 神思    时间: 2009-10-28 20:52
我没记错的话一开始你的问题是如何将八进制(\377)转换为十六进制的0xff。然而那段代码东西完成了这个工作。
我不知道你后面那2个贴子回复是什么意思。就这种语气。…我靠!
作者: secondsen    时间: 2009-10-28 22:00
我没别的意思啊。。。帖子还发重复了。。。你那个是将"377"带进去了,我顶楼给的是"\377"啊。。
他俩不一样。重申我没别的意思。。




欢迎光临 Project1 (https://rpg.blue/) Powered by Discuz! X3.1