Changeset 37
- Timestamp:
- 04/14/05 13:17:51 (4 years ago)
- Files:
-
- trunk/etc/bigint/bigint_int.d (modified) (8 diffs)
- trunk/etc/bigint/radix.d (modified) (1 diff)
Legend:
- Unmodified
- Added
- Removed
- Modified
- Copied
- Moved
trunk/etc/bigint/bigint_int.d
r28 r37 180 180 a = new Int("0x123456"); 181 181 assert(a.toHexString() == "123456"); 182 183 a = new Int("0"); 184 assert (a.toString == "0"); 185 assert (ZERO.toString == "0"); 186 assert (a == ZERO); 187 assert (a == new Int(0)); 182 188 } 183 189 … … 224 230 d.length = 2; 225 231 d[0] = n; 226 d[1] = n < 0 ? -1 : 0;232 d[1] = n < 0 ? -1U : 0; 227 233 } 228 234 … … 243 249 d.length = 3; 244 250 *(cast(ulong*)d) = n; 245 d[2] = n < 0 ? -1 : 0;251 d[2] = n < 0 ? -1U : 0; 246 252 minimize(this); 247 253 } … … 327 333 if (len == 0) 328 334 { 329 uint[2] t; 330 t[0] = t[1] = isNegative ? -1 : 0; 331 d = t; 335 d.length = 2; 336 d[] = isNegative ? -1U : 0; 332 337 } 333 338 else … … 349 354 d.length = x.length + 1; 350 355 d[0..x.length] = x[0..x.length]; 351 d[x.length] = isNegative ? -1 : 0;356 d[x.length] = isNegative ? -1U : 0; 352 357 minimize(this); 353 358 } … … 595 600 uint carry = t > 0xFFFFFFFF; 596 601 597 carry = bigintLLIncV(&r.d[1], &x.d[1], (y<0?-1:0), carry, x.d.length-1);602 carry = bigintLLIncV(&r.d[1], &x.d[1], cast(uint) (y<0?-1:0), carry, x.d.length-1); 598 603 r.d[x.d.length] = x.d[x.d.length-1] + (y<0?-1:0) + carry; 599 604 return minimize(r); … … 652 657 uint carry = t > 0xFFFFFFFF; 653 658 654 carry = bigintLLDecV(&r.d[1], &x.d[1], (y<0?-1:0), carry, x.d.length-1);659 carry = bigintLLDecV(&r.d[1], &x.d[1], cast(uint) (y<0?-1:0), carry, x.d.length-1); 655 660 r.d[x.d.length] = x.d[x.d.length-1] - (y<0?-1:0) - carry; 656 661 return minimize(r); … … 1522 1527 r.d.length = y + 2; 1523 1528 r.d[y] = x; 1524 r.d[y+1] = x<0 ? -1 : 0;1529 r.d[y+1] = x<0 ? -1U : 0; 1525 1530 return r; 1526 1531 } trunk/etc/bigint/radix.d
r12 r37 151 151 default: 152 152 { 153 if (s[0] == 0) throw new IntException("Leading zero not permitted if radix unspecified");153 if (s[0] == '0') throw new IntException("Leading zero not permitted if radix unspecified"); 154 154 radix = 10; 155 155 }
