ternary_arithmetic 0.1.6

balanced ternary use array logic gate to arithmetic
Documentation

Rust

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;
    
    //println!("d = {:08b}", d);
    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();

    //1111_1111+1000_0000+0=1_T111_1111
    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();

    //TTT-TT=T101
    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.