character to hex/binary/etc...

J

John Joyce

Hmm... I can turn a number into a character with .chr
I can convert my numbers with .to_s(2) ((where 2 is a radix, or base))
But how do I convert numbers to characters??
 
W

Wolfgang Nádasi-Donner

John said:
Hmm... I can turn a number into a character with .chr
I can convert my numbers with .to_s(2) ((where 2 is a radix, or base))
But how do I convert numbers to characters??

I don't understand what you mean - "to_s(b)" builds a string. What do
you mean by "convert numbers to characters" (example).

Wolfgang Nádasi-Donner
 
J

John Joyce

I don't understand what you mean - "to_s(b)" builds a string. What do
you mean by "convert numbers to characters" (example).

Wolfgang N=E1dasi-Donner
--=20
Posted via http://www.ruby-forum.com/.
yes it builds a string representation of a number.
I want to take a hex or binary number though and return a character.
0x49 for example is "I"
 
W

Wolfgang Nádasi-Donner

John said:
yes it builds a string representation of a number.
I want to take a hex or binary number though and return a character.
0x49 for example is "I"

irb(main):002:0> 0x49.chr
=> "I"

It works!
 
S

Stefano Crocco

Alle gioved=EC 16 agosto 2007, John Joyce ha scritto:
yes it builds a string representation of a number.
I want to take a hex or binary number though and return a character.
0x49 for example is "I"

I think you need Integer#chr:

0x49.chr
=3D> 'I'

Stefano
 
T

Tom Werner

John said:
Hmm... I can turn a number into a character with .chr
I can convert my numbers with .to_s(2) ((where 2 is a radix, or base))
But how do I convert numbers to characters??

You may be looking for Array#pack. It's useful for converting an array
from one encoding to another. One of these possibilities is to convert
an array of numbers into a string:

n = [65, 66, 67]
n.pack("c*")
#=> "ABC"


Pack (and unpack) can do tons of useful and surprising things.

Tom

--
* Libraries:
Chronic (chronic.rubyforge.org)
God (god.rubyforge.org)
* Site:
rubyisawesome.com
 
J

John Joyce

Alle gioved=EC 16 agosto 2007, John Joyce ha scritto:

I think you need Integer#chr:

0x49.chr
=3D> 'I'

Stefano
Oops, no, that's not what I need. I can do that.
I need to take "I" or "J" or whatever character and convert to hex! =20
or binary
(sorry, I'm a little sleepy now)=
 
A

Adam Shelly

Oops, no, that's not what I need. I can do that.
I need to take "I" or "J" or whatever character and convert to hex!
or binary
(sorry, I'm a little sleepy now)
like this?


irb(main):011:0> s = "A"
=> "A"
irb(main):012:0> s[0]
=> 65
irb(main):013:0> c = ?A
=> 65
irb(main):014:0> s[0].to_s(16)
=> "41"
irb(main):015:0> c.to_s(16)
=> "41"
irb(main):016:0> c.to_s(2)
=> "1000001"
 
T

Tom Werner

John said:
Oops, no, that's not what I need. I can do that.
I need to take "I" or "J" or whatever character and convert to hex! or
binary
(sorry, I'm a little sleepy now)

Ah well in that case:

?I
# => 73

?I.to_s(2)
# => "1001001"

?I.to_s(16)
# => "49"

Tom Preston-Werner

--
* Libraries:
Chronic (chronic.rubyforge.org)
God (god.rubyforge.org)
* Site:
rubyisawesome.com
 
J

John Joyce

Oops, no, that's not what I need. I can do that.
I need to take "I" or "J" or whatever character and convert to hex!
or binary
(sorry, I'm a little sleepy now)
like this?


irb(main):011:0> s = "A"
=> "A"
irb(main):012:0> s[0]
=> 65
irb(main):013:0> c = ?A
=> 65
irb(main):014:0> s[0].to_s(16)
=> "41"
irb(main):015:0> c.to_s(16)
=> "41"
irb(main):016:0> c.to_s(2)
=> "1000001"
Hmm... that first technique is useful! Returning elements of a string.
 
J

John Joyce

John said:
Hmm... I can turn a number into a character with .chr
I can convert my numbers with .to_s(2) ((where 2 is a radix, or
base))
But how do I convert numbers to characters??

You may be looking for Array#pack. It's useful for converting an
array from one encoding to another. One of these possibilities is
to convert an array of numbers into a string:

n = [65, 66, 67]
n.pack("c*")
#=> "ABC"


Pack (and unpack) can do tons of useful and surprising things.

Tom
The creator of god! I must listen carefully.

I after some reading, I'm starting to think about using the files
signatures used by DROID / PRONOM
Anyone know much about that stuff? Any Ruby implementations/bindings?
 
S

Simon Krahnke

* John Joyce said:
Hmm... that first technique is useful! Returning elements of a string.

Gut that won't work in Ruby 1.9. "haha"[0] is 104 in 1.8 but "h" in 1.9.
You have to use "haha".bytes.first in Ruby 1.9, but that won't work in
1.8.

mfg, simon .... l
 

Ask a Question

Want to reply to this thread or ask your own question?

You'll need to choose a username for the site, which only take a couple of moments. After that, you can post your question and our members will help you out.

Ask a Question

Members online

No members online now.

Forum statistics

Threads
473,755
Messages
2,569,536
Members
45,008
Latest member
HaroldDark

Latest Threads

Top