Hi

 I am new to this environment

I am on Pharo 6.0 - 64 Mac OSX version, Downloaded over the weekend.

Just did some learning and found that the description for bitAnd: is probably 
wrong.

It reads exactly the same as bitOr:

here are some tests as performed in the workspace
Also included bitXor: for the fun of it

bitAnd: arg
Primitive. Answer an Integer whose bits are the logical OR of the
        receiver's bits and those of the argument, arg.
        Numbers are interpreted as having 2's-complement representation.
        Essential.  See Object documentation whatIsAPrimitive.
        <primitive: 14>
        self >= 0 ifTrue: [^ arg bitAnd: self].
        ^ (self bitInvert bitOr: arg bitInvert) bitInvert.
        
0 bitAnd: 0 -> 0
1 bitAnd: 0 -> 0
2 bitAnd: 0 -> 0
3 bitAnd: 0 -> 0
0 bitAnd: 1 -> 0
1 bitAnd: 1 -> 1
2 bitAnd: 1 -> 0
3 bitAnd: 1 -> 1

bitOr: arg
Primitive. Answer an Integer whose bits are the logical OR of the
        receiver's bits and those of the argument, arg.
        Numbers are interpreted as having 2's-complement representation.
        Essential.  See Object documentation whatIsAPrimitive.
<primitive: 15>
        self >= 0 ifTrue: [^ arg bitOr: self].
        ^ arg < 0
                ifTrue: [(self bitInvert bitAnd: arg bitInvert) bitInvert]
                ifFalse: [(self bitInvert bitClear: arg) bitInvert]
0 bitOr: 0 -> 0 
1 bitOr: 0 -> 1 
2 bitOr: 0 -> 2 
3 bitOr: 0 -> 3 
0 bitOr: 1 -> 1 
1 bitOr: 1 -> 1 
2 bitOr: 1 -> 3 
3 bitOr: 1 -> 3 

bitXor: arg
Primitive. Answer an Integer whose bits are the logical XOR of the
        receiver's bits and those of the argument, arg.
        Numbers are interpreted as having 2's-complement representation.
        Essential.  See Object documentation whatIsAPrimitive.
<primitive: 16>
        self >= 0 ifTrue: [^ arg bitXor: self].
        ^ arg < 0
                ifTrue: [self bitInvert bitXor: arg bitInvert]
                ifFalse: [(self bitInvert bitXor: arg) bitInvert].
                        
0 bitXor: 0 -> 0 
1 bitXor: 0 -> 1 
2 bitXor: 0 -> 2 
3 bitXor: 0 -> 3 
0 bitXor: 1 -> 1 
1 bitXor: 1 -> 0 
2 bitXor: 1 -> 3 
3 bitXor: 1 -> 2 

Picked it up when I was trying to explain the simplicity of the even method on 
smallInteger.

Methods work just fine, but the description is wrong

regards
Koos brandt

Reply via email to