OLD | NEW |
| (Empty) |
1 // Copyright (c) 2012, the Dart project authors. Please see the AUTHORS file | |
2 // for details. All rights reserved. Use of this source code is governed by a | |
3 // BSD-style license that can be found in the LICENSE file. | |
4 | |
5 /** | |
6 * A fixed-precision integer. | |
7 */ | |
8 interface intx extends Comparable, Hashable { | |
9 | |
10 // Arithmetic operations. | |
11 intx operator +(other); | |
12 intx operator -(other); | |
13 // The unary '-' operator. Note that -MIN_VALUE will be equal | |
14 // to MIN_VALUE due to overflow. | |
15 intx operator negate(); | |
16 intx operator *(other); | |
17 intx operator %(other); | |
18 // Truncating division. | |
19 intx operator ~/(other); | |
20 intx remainder(other); | |
21 | |
22 // Note: no / operator | |
23 | |
24 // Bit-operations. | |
25 intx operator &(other); | |
26 intx operator |(other); | |
27 intx operator ^(other); | |
28 intx operator ~(); | |
29 intx operator <<(int shiftAmount); | |
30 intx operator >>(int shiftAmount); | |
31 intx shiftRightUnsigned(int shiftAmount); | |
32 | |
33 // Relational operations, may be applied to intx or int. | |
34 int compareTo(Comparable other); | |
35 bool operator ==(other); | |
36 bool operator <(other); | |
37 bool operator <=(other); | |
38 bool operator >(other); | |
39 bool operator >=(other); | |
40 | |
41 // Testers. | |
42 bool isEven(); | |
43 bool isMaxValue(); | |
44 bool isMinValue(); | |
45 bool isNegative(); | |
46 bool isOdd(); | |
47 bool isZero(); | |
48 | |
49 int hashCode(); | |
50 | |
51 intx abs(); | |
52 | |
53 /** | |
54 * Returns the number of leading zeros in this [intx] as an [int] | |
55 * between 0 and 64. | |
56 */ | |
57 int numberOfLeadingZeros(); | |
58 | |
59 /** | |
60 * Returns the number of trailing zeros in this [intx] as an [int] | |
61 * between 0 and 64. | |
62 */ | |
63 int numberOfTrailingZeros(); | |
64 | |
65 /** | |
66 * Converts this [intx] to a [List] of [int], starting with the least | |
67 * significant byte. | |
68 */ | |
69 List<int> toBytes(); | |
70 | |
71 /** | |
72 * Converts this [intx] to an [int]. On some platforms, inputs with large | |
73 * absolute values (i.e., > 2^52) may lose some of their low bits. | |
74 */ | |
75 int toInt(); | |
76 | |
77 /** | |
78 * Converts an [intx] to 32 bits. Narrower values are sign extended and | |
79 * wider values have their high bits truncated. | |
80 */ | |
81 int32 toInt32(); | |
82 | |
83 /** | |
84 * Converts an [intx] to 64 bits. | |
85 */ | |
86 int64 toInt64(); | |
87 | |
88 /** | |
89 * Returns the value of this [intx] as a decimal [String]. | |
90 */ | |
91 String toString(); | |
92 | |
93 /** | |
94 * Returns the value of this [intx] as a hexadecimal [String]. | |
95 */ | |
96 String toHexString(); | |
97 | |
98 /** | |
99 * Returns the value of this [intx] as a [String] in the given radix. | |
100 * [radix] must be an integer between 2 and 16, inclusive. | |
101 */ | |
102 String toRadixString(int radix); | |
103 } | |
OLD | NEW |