Re: Language question
My general advice agrees with Duncan's, above: split the extraction and manipulation into a different tools as much as possible: make your extractor export the data to a useful intermediary format (CSV, for instance, can be pulled into spreadsheets, but I know nothing about your format, so maybe that won't suit). You can then write other tools to work on that intermediary format, and use a third tool to re-assemble it into the packed form if needed.
C#, Java or Python can all do what you're looking for (so can C, but it is much harder, and you said "no C"). Python can deal with unpacking binary data, although the mechanism is a little odd (look up the Python 'struct.unpack' package). I find C# (and the .Net/Mono libraries) to be better at getting down and dirty with binary data than Java, but that may be my own prejudices against Java in general.
Once you've got the data out, Python will transparently deal with the largeness of the numbers (for integer values over 32-bits, it silently switches to a decimal-based multiple-precision "bignum" type). In the other two languages, use library "big integer" functions rather than the built-in long or int types (In C#.Net or Mono that's System.Numerics.BigInteger, in Java, java.math.BigInteger).
Given the limited information on what you're doing, I'd lean towards Python in this case: extracting the info will be a little harder, but manipulating it afterwards may be easier.
However, if this is something you're hoping to grow into a larger application, then don't go down the Python route - python programs can become very difficult to maintain when they get beyond a couple of thousand lines of code. Keep each program small, with a clear purpose, and resist the urge to attach unrelated features to an existing script.