--- a/Integer.st Mon Apr 02 17:56:50 2007 +0200
+++ b/Integer.st Mon Apr 02 17:59:31 2007 +0200
@@ -9,7 +9,6 @@
other person. No title to or ownership of the software is
hereby transferred.
"
-
"{ Package: 'stx:libbasic' }"
Number subclass:#Integer
@@ -1868,6 +1867,34 @@
"Created: / 25.10.1998 / 14:58:09 / cg"
"Modified: / 25.10.1998 / 19:20:33 / cg"
+!
+
+digitBytes
+ "return a byteArray filled with the receivers bits
+ (8 bits of the absolute value per element),
+ least significant byte is first"
+
+ ^ self subclassResponsibility
+!
+
+digitBytesMSB:msbFlag
+ "return a byteArray filled with the receivers bits
+ (8 bits of the absolute value per element),
+ if msbflag = true, most significant byte is first,
+ otherwise least significant byte is first"
+
+ msbFlag ifTrue:[
+ ^ self digitBytes copyReverse. "digitBytes may be shared - reverse a copy!!"
+ ].
+ ^ self digitBytes
+
+ "
+ 16r12 digitBytesMSB:true
+ 16r1234 digitBytesMSB:true
+ 16r1234 digitBytesMSB:false
+ 16r12345678 digitBytesMSB:true
+ 16r12345678 digitBytesMSB:false
+ "
! !
!Integer methodsFor:'coercing & converting'!
@@ -2308,7 +2335,7 @@
b := self highBit.
rem := 1 bitShift:b.
- result := 0 asLargeInteger numberOfDigits:(b // 8)+1.
+ result := LargeInteger basicNew numberOfDigits:(b // 8)+1.
b := b+1.
[b > 0] whileTrue:[
rem >= self ifTrue:[
@@ -3105,6 +3132,7 @@
"Modified: 15.10.1997 / 18:43:49 / cg"
! !
+
!Integer methodsFor:'special bit operators'!
bitAnd_32:anInteger
@@ -3488,7 +3516,7 @@
!Integer class methodsFor:'documentation'!
version
- ^ '$Header: /cvs/stx/stx/libbasic/Integer.st,v 1.189 2006-10-04 12:33:09 cg Exp $'
+ ^ '$Header: /cvs/stx/stx/libbasic/Integer.st,v 1.190 2007-04-02 15:59:31 stefan Exp $'
! !
Integer initialize!