
Ternary Arithmetic
A Rust library use array logic gate to arithmetic.
a numeral system with digits -1
, 0
, and +1
.
Installation
Add this to your Cargo.toml
:
cargo add ternary_arithmetic
Example
use ternary_arithmetic::ternary_io::Ternary;
use ternary_arithmetic::logical_calculate::Digit;
use ternary_arithmetic::dibit_logic::DibitLogic;
fn main() {
let a:u8 = 0b10_10_10_10;
let b:u8 = 0b00_00_00_00;
let c:u8 = 0b01_01_01_01;
let d:u8 = 0b10_00_01_00;
let r =a.dibit_tand(d);
let r1 =b.dibit_tand(d);
let r2 =c.dibit_tand(d);
r.digits_print_t();
r1.digits_print_t();
r2.digits_print_t();
let a:u16 = 0b0101_0101_0101_0101;
let b:u16 = 0b0100_0000_0000_0000;
let r=a.dibit_adder(b, Digit::Z);
println!("{:?}",r.0);
r.1.digits_print_t();
let a:u16 = 0b0000_0000_0010_1010;
let b:u16 = 0b0000_0000_0000_0101;
let r=a.dibit_sub(b, Digit::Z);
println!("{:?}",r.0);
r.1.digits_print_t();
let a = Ternary::parse("+0-+-+");
let b = Ternary::parse("+-+-+");
let result=&a + &b;
result.digits_print();
let result=&a - &b;
result.digits_print_t();
let result=&a * &b;
result.digits_print();
let a = Ternary::parse("+-+-+-+-+++-+++-0++-000++--+-++-++-++++++++++++++-++++-+++--++++--0+++-++-+-++-++0+-0");
let b = Ternary::parse("+-+-+-+-+++-+++-0++-000++--+-++-+0+-0");
let c=&a / &b;
println!("{}/{}={}",a.to_dec(),b.to_dec(),c.quotient.to_dec());
}
License
This project is licensed under the MIT License.