@@ -24,8 +24,8 @@ fn main() {
24
24
//println!("{}", (-0.0_f64).to_bits());
25
25
26
26
// FIXME: seems like the asm is calling comisd which seems to convert -0.0 to 0.
27
- assert ! ( ( -0.0_f64 ) . to_bits( ) & 0x8000_0000_0000_0000 != 0 ) ;
28
- println ! ( "1" ) ;
27
+ /* assert!((-0.0_f64).to_bits() & 0x8000_0000_0000_0000 != 0);
28
+ println!("1");*/
29
29
//println!("{}", float);
30
30
//std::process::exit(float as i32)
31
31
@@ -214,4 +214,47 @@ fn main() {
214
214
assert_eq!(r.saturating_pow(2), 4 as i128);
215
215
assert_eq!(r.saturating_pow(3), -8 as i128);
216
216
assert_eq!(r.saturating_pow(0), 1 as i128);*/
217
+
218
+ fn max64 ( ) -> i128 {
219
+ 18446744073709551615_i128
220
+ //18446744073709551615_u64 as i128
221
+
222
+ /*println!("{}", u64::MAX);
223
+ u64::MAX as i128*/
224
+ }
225
+
226
+ println ! ( "1. {}" , max64( ) ) ;
227
+
228
+ /*use std::convert::TryFrom;
229
+
230
+ fn try_from(u: i128) -> Option<u64> {
231
+ let min = u64::MIN as i128;
232
+ let max = u64::MAX as i128;
233
+ /*println!("{} < {} == {}", u, min, u < min);
234
+ println!("{} > {} == {}", u, max, u > max);*/
235
+ if u < min || u > max {
236
+ None
237
+ } else {
238
+ Some(u as u64)
239
+ }
240
+ }
241
+
242
+ let max = <i128>::MAX;
243
+ let min = <i128>::MIN;
244
+ let zero: i128 = 0;
245
+ let t_max = <u64>::MAX;
246
+ let t_min = <u64>::MIN;
247
+ assert!(<u64 as TryFrom<i128>>::try_from(max).is_err());
248
+ assert!(<u64 as TryFrom<i128>>::try_from(min).is_err());
249
+ println!("{:?}", try_from(zero));
250
+ println!("{:?}", <u64 as TryFrom<i128>>::try_from(zero));
251
+ assert_eq!(<u64 as TryFrom<i128>>::try_from(zero).unwrap(), zero as u64);
252
+ assert_eq!(
253
+ <u64 as TryFrom<i128>>::try_from(t_max as i128).unwrap(),
254
+ t_max as u64
255
+ );
256
+ assert_eq!(
257
+ <u64 as TryFrom<i128>>::try_from(t_min as i128).unwrap(),
258
+ t_min as u64
259
+ );*/
217
260
}
0 commit comments