Simplify RawNumberToAddressConverter by clearing MSB directly #163
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Summary
Simplifies the
RawNumberToAddressConverter<TLinkAddress>by directly clearing the most significant bit instead of using the complexHybrid<TLinkAddress>.AbsoluteValuelogic.Changes Made
_converter.Convert(new Hybrid<TLinkAddress>(source).AbsoluteValue)with direct MSB clearing using bitwise AND operationUncheckedConverter<long, TLinkAddress>andHybrid<TLinkAddress>instantiationImplementation Details
The new implementation:
The key insight is that the original
Hybrid<TLinkAddress>.AbsoluteValuewas essentially converting the unsigned value to signed, taking the absolute value, and converting back. This can be simplified to just clearing the most significant bit, which ensures the result is always interpreted as a positive value.Testing
RawNumberToAddressConverterTests.csto verify the MSB clearing behaviorCompatibility
This change maintains the same public API while simplifying the internal implementation. The behavior should be equivalent for all practical use cases where the converter is used to generate positive address values.
Fixes #67
🤖 Generated with Claude Code