Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Full big num implementation with preferred serialization and 65-bit negs #219

Merged
merged 20 commits into from
Jul 25, 2024

Conversation

laurencelundblade
Copy link
Owner

@laurencelundblade laurencelundblade commented Apr 21, 2024

Encoding and decoding of negative big numbers now takes into account the offset of 1 for all CBOR negative numbers. Also, big numbers are encoded with preferred serialization -- when they can be encoded with type 0 and type 1 integers, they are. Encoding and decoding big numbers is no longer a pass through for tagging a binary string.

This is an incompatible change with QCBOR 1.x. A mode configuration call is added to return to the 1.x behavior if desired.

This is because of the realization in work on 65-bit negative numbers that big numbers need preferred serialization.

This affects big floats and decimal fractions when the mantissa is a big number.

New methods to encode big numbers with non-preferred serialization are added.

A new method is added to process a raw big number for the offset of one for negatives. This is outside of spiffy decode. It does a little big number arithmetic.

dCBOR numeric reduction now includes 65-bit integers both for number encoding and decoding.

@laurencelundblade laurencelundblade changed the title Checkpoint work on 65-bit negs Full big num implementation with preferred serialization and 65-bit negs Jul 15, 2024
@laurencelundblade laurencelundblade merged commit 14ce228 into dev Jul 25, 2024
44 checks passed
@laurencelundblade laurencelundblade deleted the 65-neg branch July 25, 2024 05:13
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

1 participant