Hello,
The interface for writing and reading the serial port is string, or ASCII, however, you can receive arbitrary data. If you are certain that you are sending the appropriate command, and you think you are receiving the correct response and only need to interpret it, really the only consideration you have to make involves type casting. That is, you will receive the data back as a string, which is really just a sequence of bytes. You can type cast the result, or part of the result, in order to have your computer interpret the string, or part of the string, as an integer for example. I think this is the heart of both of your questions below. Here is a specific example of type casting part of a string to type unsigned integer:
Suppose you received the string "abcdef" back. Well, the characters a, b, c, d, e, and f have ASCII representations of Hex 62, 63, 64, 65, 66, and 67 respectively (each of these is represented by 8 bits, or 1 byte). Thus, the corresponsing binary representations are: 0110 0010, 0110 0011, 0110 0100, and 0110 0101 respectivley. Now, suppose we extracted the substring "bcdf"; this is 4 bytes or 32 bits. Well, we know that there is a fundamental primitive data type for 32 unsigned integers, so we should be able to type cast the string "bcde" to type unsigned 32-bit integer and produce the result which is the integer defined by the 32 bits which define the ascii characters bcde in that order. Well, the underlying bits in this case will be: 0110 0010 0110 0011 0110 0100 0110 0101, which when "pushed together" will be 01100010011000110110010001100101, which is the binary representation for the number 1650680933 (decimal).
That is an example of how you can take a string result and type cast to the data type which you (perhaps) know the instrument sent back to you.
Repost if you any other questions!
Thank you,
JLS