#include <stdio.h>
#include <stdbool.h>
bool toHex1(int val, char *dstPtr){
if (dstPtr == NULL) {
return false;
}
return true;
}
bool toHex2(int val, char *dstPtr) {
if (dstPtr == NULL) {
return false;
}
char wrkstr[5] = {0};
static const int maxbit = 16;
int wrkval = val;
int bit = 0;
while(bit <= maxbit) {
wrkval = (val >> bit & 0xF);
if (wrkval == 0) {
break;
}
if (wrkval < 10) {
wrkstr[bit/4] = '0' + wrkval;
} else {
wrkstr[bit/4] = 'A' + (wrkval - 10);
}
// printf("%d", wrkval);
bit += 4;
}
int idx = bit / 4 - 1;
while(idx >= 0) {
dstPtr[idx] = wrkstr[bit / 4 - idx - 1];
idx--;
}
return true;
}
int main(void) {
int val=0;
char res[20];
if(toHex1(val, res)) {
}
res[0] = 0x0;
if(toHex2(val, res)) {
}
return 0;
}
I2luY2x1ZGUgPHN0ZGlvLmg+CiNpbmNsdWRlIDxzdGRib29sLmg+Cgpib29sIHRvSGV4MShpbnQgdmFsLCBjaGFyICpkc3RQdHIpewoJaWYgKGRzdFB0ciA9PSBOVUxMKSB7CgkJcmV0dXJuIGZhbHNlOwoJfQoJc3ByaW50Zihkc3RQdHIsICIlWCIsIHZhbCk7CglyZXR1cm4gdHJ1ZTsKfQpib29sIHRvSGV4MihpbnQgdmFsLCBjaGFyICpkc3RQdHIpIHsKCWlmIChkc3RQdHIgPT0gTlVMTCkgewoJCXJldHVybiBmYWxzZTsKCX0KCQoJY2hhciB3cmtzdHJbNV0gPSB7MH07CglzdGF0aWMgY29uc3QgaW50IG1heGJpdCA9IDE2OwoJaW50IHdya3ZhbCA9IHZhbDsKCWludCBiaXQgPSAwOwoJd2hpbGUoYml0IDw9IG1heGJpdCkgewoJCXdya3ZhbCA9ICh2YWwgPj4gYml0ICYgMHhGKTsKCQlpZiAod3JrdmFsID09IDApIHsKCQkJYnJlYWs7CgkJfQoJCWlmICh3cmt2YWwgPCAxMCkgewoJCQl3cmtzdHJbYml0LzRdID0gJzAnICsgd3JrdmFsOwoJCX0gZWxzZSB7CgkJCXdya3N0cltiaXQvNF0gPSAnQScgKyAod3JrdmFsIC0gMTApOwoJCX0KLy8JCXByaW50ZigiJWQiLCB3cmt2YWwpOwoJCWJpdCArPSA0OwoJfQoJCglpbnQgaWR4ID0gYml0IC8gNCAtIDE7Cgl3aGlsZShpZHggPj0gMCkgewoJCWRzdFB0cltpZHhdID0gd3Jrc3RyW2JpdCAvIDQgLSBpZHggLSAxXTsKCQlpZHgtLTsJCgl9CgoJcmV0dXJuIHRydWU7CQkKfQoKaW50IG1haW4odm9pZCkgewoJaW50IHZhbD0wOwoJY2hhciByZXNbMjBdOwoJCglpZih0b0hleDEodmFsLCByZXMpKSB7CgkJcHJpbnRmKCIlZCAlc1xuIiwgdmFsLCByZXMpOwoJfQoJcmVzWzBdID0gMHgwOwoJaWYodG9IZXgyKHZhbCwgcmVzKSkgewoJCXByaW50ZigiJWQgJXNcbiIsIHZhbCwgcmVzKTsKCX0KCQoJcmV0dXJuIDA7Cn0K