Comments (5)
from bindata.
I was hoping that since a record defines its fields from least to most significant bytes, and that you can mix the endianness between different byte fields, that I would be able to do the same within a bitfield. In the example above I would expect that :tag
would use the 2 most significant bits of the byte, and :a
would use the 6 least significant bits.
76543210
ttaaaaaa
The docs kind of imply this is possible: https://github.com/dmendel/bindata/wiki/Records#specifying-default-endian. Perhaps a note could be added there (or in the section about bitfields) that you can't mix endian-ness?
Should the endian
directive apply for records containing bitfields?
from bindata.
from bindata.
Yes, that would be the expected output regardless of the endianness of the bitfield, right?
These two classes give the same result
class Test1 < BinData::Record
bit2 :tag
bit6 :a
end
class Test2 < BinData::Record
bit6le :a
bit2le :tag
end
Test1.read("\xa4") == Test2.read("\xa4")
For the same sequence of bits bitN(bits) == bitNle(bits)
. If I'm understanding things correctly, the difference is if the bits are consumed starting from the beginning or end of the byte(s)?
In any case, I don't want to belabour the point. Thank you for explaining things!
from bindata.
from bindata.
Related Issues (20)
- parse ole file err HOT 2
- Arrays are fully allocated before checking to see if they can be read HOT 3
- Customize record Bindata name HOT 2
- List example references Fixnum which is deprecated in Ruby 2.4 HOT 1
- ActiveSupport 7 compatibility - Enumerable now contains a method called maximum HOT 1
- Help: use endian to report an error, why is this?I'm using bindata in the process of writing a plugin for logstash HOT 3
- DelayedIO ignores onlyif HOT 4
- Rename parameter 'assert' as it shadows an existing method. HOT 11
- Rename parameter 'assert' as it shadows an existing method. (Linked to Closed issue-#141) HOT 2
- Calculating offsets for the delayed_io directory example HOT 2
- test failures with ruby3.1
- Dependency on Ruby 2.4 added
- Calling auto_call_delayed_io twice breaks delayed io HOT 2
- Dynamic integer HOT 1
- Question: High memory usage HOT 2
- Heterogenous array of absolutely positioned items HOT 2
- How can I read 2 bytes (little endian) and then interpret that value as a bit field? HOT 2
- Array read_until: -> { :eof } feature is broken HOT 2
- Multiple registries HOT 12
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from bindata.