程序员的基本修养

Posted by JunMing on 2019-05-05

无论什么行业都有高手低手,程序员这个行业也不例外。
那么如何区分高手程序员和菜鸟程序员呢?我们先来完成一道简单的编程。

将十进制数字0-15转成十六进制字符(例:10->A, 12->C)

新手的解决方案1

1
2
3
4
5
6
7
8
9
10
11
12
13
char DecToHex(uint dec)
{
if(dec==0)
return '0';
else if(dec==1)
return '1';

...
else if(dec==15)
return 'F';
else
return 'X';
}

新手容易犯的错误:只想着完成功能,不去想效率,代码简洁这些事情。勉强能工作,但是很臃肿。

略微好一点的方案2

1
2
3
4
5
6
7
8
9
char DecToHex(uint dec)
{
if(dec>=0 && dec <= 9)
return '0'+dec;
else if(dec>9 && dec<16)
return 'A'+(dec-10);
else
return 'X';
}

这个方案代码简洁很多,利用了一些字符规律。但是仍然不够。

更好的方案3

1
2
3
4
5
6
7
8
char DecToHex(uint dec)
{
const char* const hexstr='0123456789ABCDEF';
if(dec>=0 && dec < 16)
return hexstr[dec];
else
return 'X';
}

这个方案代码更清晰,效率更高。

你有更好的方案吗?