On Wednesday, 3 February 2016 at 23:45:15 UTC, Enjoys Math wrote:
On Wednesday, 3 February 2016 at 23:43:45 UTC, Enjoys Math
wrote:
I am making a method called:
@property string debugIDString() {
in {
assert(super.toHash() == this.toHash());
} body {
}
body { // is currently:
return to!string(this.toHash());
}
and is returning a base10 string, so how would I return a hex
string so I can compare numbers displayed to the debugger
addresses in visual D?
One solution: create "string_tools.d":
module string_tools;
import std.conv: to;
string hexString(int x) {
string hex = "0x";
for(uint k=0; k < 8; k++) {
int hexDig = (x >> (k << 2)) & 0x0000000F;
if (hexDig < 10) {
hex ~= to!string(hexDig);
}
else {
string hexDixStr;
switch (hexDig) {
case 10: hexDigStr = "A"; break;
case 11: hexDigStr = "B"; break;
case 12: hexDigStr = "C"; break;
case 13: hexDigStr = "D"; break;
case 14: hexDigStr = "E"; break;
case 15: hexDigStr = "F"; break;
}
hex ~= hexDigStr;
}
}
return hex;
}