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
Thanks Koos. This description is indeed wrong. On Tue, Jul 18, 2017 at 8:47 PM, Koos Brandt <brandt.koos@gmail.com> wrote:
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
I opened a bug entry. https://pharo.fogbugz.com/f/cases/20257/bitAnd-description-is-wrong On Tue, Jul 18, 2017 at 11:16 PM, Stephane Ducasse <stepharo.self@gmail.com> wrote:
Thanks Koos. This description is indeed wrong.
On Tue, Jul 18, 2017 at 8:47 PM, Koos Brandt <brandt.koos@gmail.com> wrote:
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
participants (2)
-
Koos Brandt -
Stephane Ducasse