无论什么行业都有高手低手,程序员这个行业也不例外。
那么如何区分高手程序员和菜鸟程序员呢?我们先来完成一道简单的编程。
将十进制数字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'; }
|
这个方案代码更清晰,效率更高。
你有更好的方案吗?
AD