'How can I decode a hexadecimal to a byte array in Dart?
So there's the 'dart:convert'
library, which contains a HexDecoder class that doesn't seem to have a constructor (according to this). But importing it and trying to construct it doesn't work; I thought maybe there was a default constructor not mentioned.
I could copy the code in the source for the convert method, but I'd rather make this a learning opportunity. Any help would be appreciated.
Solution 1:[1]
HexDecoder
isn't actually in dart:convert
. It's in a package (also) called convert
.
You need to add it to your pubspec.yaml
and then use an import like:
import 'package:convert/convert.dart';
Then use it like this:
hex.decode('abcdef');
hex
is a const singleton instance of the codec. (The constructor is private; you don't need to instantiate your own - use the existing const instance.)
Solution 2:[2]
For anyone who wants to convert hexadecimal numbers to 2's component, Dart has a builtin method .toSigned(int):
var testConversion = 0xC1.toSigned(8);
print("This is the result: " + testConversion.toString()); // prints -63
Sources
This article follows the attribution requirements of Stack Overflow and is licensed under CC BY-SA 3.0.
Source: Stack Overflow
Solution | Source |
---|---|
Solution 1 | Richard Heap |
Solution 2 | Elmar |