RosettaCodeData/Task/Integer-overflow/Racket/integer-overflow.rkt

21 lines
521 B
Racket

#lang racket
(require racket/unsafe/ops)
(fixnum? -1073741824) ;==> #t
(fixnum? (- -1073741824)) ;==> #f
(- -1073741824) ;==> 1073741824
(unsafe-fx- 0 -1073741824) ;==> -1073741824
(+ 1000000000 1000000000) ;==> 2000000000
(unsafe-fx+ 1000000000 1000000000) ;==> -147483648
(- -1073741823 1073741823) ;==> -2147483646
(unsafe-fx- -1073741823 1073741823) ;==> 2
(* 46341 46341) ;==> 2147488281
(unsafe-fx* 46341 46341) ;==> 4633
(/ -1073741824 -1) ;==> 1073741824
(unsafe-fxquotient -1073741824 -1) ;==> -1073741824