torsten 

could you check that all your examples are really covered in the deepintopharo 
chapter about little numbers?
Else we should add them.

Stef
On 06 Feb 2014, at 16:08, Torsten Bergmann <asta...@gmx.de> wrote:

> Hi Pablo,
> 
> can you be more specific why you need a BitSet class other than convinience? 
> What do you
> want to do?
> 
> Note that for bit handling in Smalltalk you can easily just send messages to 
> integers 
> or large integers:
> 
> Access bits:    12 bitAt: 1              -> 0
> Modify bits:    12 bitAt: 1 put: 1       -> 13
> Print binary:   12 printStringBase: 2    -> '1100'
> Print hex:      12 printStringBase: 16    -> 'C'
> Large number:   67677557657 printStringBase: 2  ->  
> '111111000001111001011001001110011001'
> 
> There are also #bitAnd:, #bitOr:, #bitXor: messages:
> 
>   12 bitOr: 1  -> 13
>   12 bitAnd: 8 -> 8 
> 
> and you can use the abbreviations known from C world:
> 
>   12 | 1    -> 13
>   12 & 1    -> 0
> 
> If you want to see the bit representation just print as a string with base 2:
> 
>  12 | 2 printStringBase: 2  ->  '1110'
> 
> So for octal use:    
> 
>  12 | 2 printStringBase: 8  -> '16'
> 
> If you disklike to stay in decimal system you should be aware that in 
> Smalltalk you can easily write a number in different bases directly 
> using the "BASE, followed by r followed by number" representation.
> 
> So you can for example write:
> 
>    12 
> as  2r1100
> as 16rC  
> as 10r12 (decimal again)
> as 8r14 (octal)
> or any other base that you like directly
> 
> With this you can also easily manipulate bits while writing in bit 
> representation:
> 
>          2r0001 bitOr: 2r0101  -> 5
> same as:  2r0001 | 2r0101       -> 5
> 
> when you need the result again as bits:
> 
> (2r0001 | 2r0101) printStringBase: 2  ->  '101'
> 
> Many other convinience methods are there like:
>  12 hex                      -> '16rC'
>  12 printStringHex           -> 'C'
>  $A hex                      -> '16r41'
>  $A printStringHex           -> '41'
> 
> Feel free to mix all that
> 
>  (16rFF00 | 2r00001) hex  ->  '16rFF01'
> 
> Try to get used to these methods and you will have fun with bits
> in Pharo Smalltalk easily. 
> 
> If you need something more tell us, a BitSet class implementation
> could be easily written using the above as a base.
> 
> Bye
> T.
> 
> 
> 
> 
> 
> 
> 
> 


Reply via email to