Class: BitStream::Signed
- Inherits:
-
Object
- Object
- BitStream::Signed
- Defined in:
- lib/types/integer.rb
Class Method Summary collapse
Instance Method Summary collapse
-
#initialize(unsigned) ⇒ Signed
constructor
A new instance of Signed.
- #length ⇒ Object
- #read(s, offset) ⇒ Object
- #write(s, offset, value) ⇒ Object
Constructor Details
#initialize(unsigned) ⇒ Signed
Returns a new instance of Signed.
107 108 109 |
# File 'lib/types/integer.rb', line 107 def initialize(unsigned) @unsigned = unsigned end |
Class Method Details
.instance(props, bit_width) ⇒ Object
102 103 104 105 |
# File 'lib/types/integer.rb', line 102 def self.instance(props, bit_width) unsigned = Unsigned.instance(props, bit_width) return @instances[unsigned] end |
Instance Method Details
#length ⇒ Object
111 112 113 |
# File 'lib/types/integer.rb', line 111 def length @unsigned.length end |
#read(s, offset) ⇒ Object
115 116 117 118 119 120 121 122 123 124 |
# File 'lib/types/integer.rb', line 115 def read(s, offset) info = @unsigned.read(s, offset) val = info[:value] len = info[:length] mask = -1 << (len - 1) if (val & mask) != 0 val |= mask end return FieldInfo.new(val, len) end |
#write(s, offset, value) ⇒ Object
126 127 128 129 130 |
# File 'lib/types/integer.rb', line 126 def write(s, offset, value) mask = ~(-1 << len) value &= mask return @unsigned.write(s, offset, value) end |