[Dwarf-discuss] bit-string

Thomas David Rivers rivers@dignus.com
Wed Dec 18 20:39:44 GMT 2024


David Blaikie wrote:
> 
> What sort of string-like behavior would one want on a bit-string? Seems
> like array would be the better fit to me...
> 

 It's a language that originates in the late 60s - so there are some,
 "different" ideas than more contemporary languages.

 You can ask for sub-strings of strings (character or bit), you can
 assign a string (shorter or of equal length) to a target string,
 you can also concatenate strings, and you can assign to portions 
 within a target bit string (or character string for that matter.)

 e.g.

    test: proc;

     dcl b10 bit(10);
     dcl b20 bit(20) varying;
     dcl dest bit(30) varying4;  /* maximum possible result size */

   b10 = '1010'b;  /* assigns '1010000000' to b10 (passing on the right */
                   /* with 0 bits because the length is fixed. */

   b20 = '10'b;    /* assigns '10' to b20, moving a byte containing  */
                   /* '10......' and setting the 2-byte length field */
                   /* to 2, indicating the left-most 2 bits are used. */

   dest = b10 || b20;  /* assigns '101000000010....' to dest, setting it's */
                       /* 4-byte length field to 12. */

   b10 = substr(dest,1,2);  /* extracts the first 2 bits from the bitfield */
              /* dest ('10') (2 bytes starting a position #1) and assigns  */
              /* it to b10, which is extended to 10 bits on-the-right      */
              /* because b10 is a fixed-length, resulting in '1000000000'  */
              /* being assigned to b10 */

   substr(b10,6,1) = '1'b;  /* assigns a 1-bit value to b10, starting */
			    /* at bit #6 and going for 1 bit, resulting */
			    /* in '1010010000' being in b10 */

     end proc;

 So - it's a rather abstract idea of "strings of bits" similar to
 "strings of characters".  

     - Dave Rivers -

--
rivers@dignus.com



More information about the Dwarf-discuss mailing list