Start implementing parsing numbers from strings
Some checks failed
timw4mail/rusty-numbers/pipeline/head There was a failure building this commit
Some checks failed
timw4mail/rusty-numbers/pipeline/head There was a failure building this commit
This commit is contained in:
parent
d6b0825b9a
commit
19fa9bf6c7
@ -128,7 +128,28 @@ impl BigInt {
|
|||||||
/// Convert a `&str` or a `String` representing a number in the specified radix to a Bigint.
|
/// Convert a `&str` or a `String` representing a number in the specified radix to a Bigint.
|
||||||
///
|
///
|
||||||
/// For radix 10, use the `from` associated function instead.
|
/// For radix 10, use the `from` associated function instead.
|
||||||
|
///
|
||||||
|
/// Radix must be between 1 and 36, inclusive, with radix higher
|
||||||
|
/// than 11 represented by A-Z
|
||||||
|
///
|
||||||
|
/// Only alphanumeric characters are considered, so exponents and
|
||||||
|
/// other forms are not parsed
|
||||||
pub fn from_str_radix<T: ToString>(s: T, radix: usize) -> BigInt {
|
pub fn from_str_radix<T: ToString>(s: T, radix: usize) -> BigInt {
|
||||||
|
let input = s.to_string();
|
||||||
|
|
||||||
|
// Convert each digit to it's decimal representation
|
||||||
|
let mut raw_digits: Vec<usize> = Vec::with_capacity(input.len());
|
||||||
|
for maybe_digit in input.chars() {
|
||||||
|
match maybe_digit.to_digit(radix as u32) {
|
||||||
|
Some(d) => raw_digits.push(d as usize),
|
||||||
|
None => continue,
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
// Calculate the decimal value by calculating the value
|
||||||
|
// of each place value
|
||||||
|
|
||||||
|
// In base 1, number of place values = total value
|
||||||
todo!();
|
todo!();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user