Re: [问题] 请问16进位转十进制,值不要真的转过去

楼主: kingzero (一起迷路)   2014-07-15 14:22:58
※ 引述《liptonbin (我还存在耶)》之铭言:
: 请教一下
: 我有个变量是16进位的
: 例如
: DWORD var = 0x10;
: 我想把他变成10进位,但不要按造16进位转10进位转过去 即变成0x10=>16
: 而是想变成10
: 即var = 10
: 或
: DWORD var = 0x24;(十六进制)
: 变成var = 24(十进制)
: 请问有什么好方法吗
: 谢谢
看到这一个忍不住回一下
char var[2];
var[0]= var & 0x0f;
var[1]= var >>4;
打完收工~~
作者: CCWck (干嘛要暱称)   2014-07-15 20:02:00
看不懂...
作者: kerwinhui (kezza)   2014-07-15 20:17:00
应该还要 + 0x30 吧?
作者: yuben75 (我想飞)   2014-07-15 22:29:00
Dec = (( var/16 ) << 4 ) + ( var % 16);
作者: CCWck (干嘛要暱称)   2014-07-15 23:49:00
楼上我看的懂 就是除16后商数和余数的关系 但原PO的我不懂
作者: uranusjr (←這人是超級笨蛋)   2014-07-15 23:54:00
& 0xf 和 % 16 对等, >> 4 等同于 / 16
作者: hydefate (Raiden)   2014-07-16 23:41:00
Var[0]个位 Var[1]十位
作者: EdisonX (卡卡兽)   2014-07-17 00:13:00
不过这例用 char Var[2] 还蛮不准的.0x10 只有用到 Var[0]

Links booklink

Contact Us: admin [ a t ] ucptt.com