字符操作

zxhong 2006-04-19 11:40:54
register char digit;

digit = (what[0] >= 'A' ? ((what[0] & 0xdf) - 'A') + 10 : (what[0] - '0'));//为什么是0xdf
digit *= 16; //乘以16代表什么意思?
...全文
108 3 打赏 收藏 转发到动态 举报
写回复
用AI写文章
3 条回复
切换为时间正序
请发表友善的回复…
发表回复
YFY 2006-04-19
  • 打赏
  • 举报
回复

0xdf 是二进制的 11011111, what[0] &一下是去掉what[0]的二进制第6位。

digit *= 16; //乘以16代表什么意思? 二进制左移4位。

抛开上下文是很难解释的。
zxhong 2006-04-19
  • 打赏
  • 举报
回复
就是HEX->CHAR
ouyh12345 2006-04-19
  • 打赏
  • 举报
回复
抛开了上下文,很难理解

69,373

社区成员

发帖
与我相关
我的任务
社区描述
C语言相关问题讨论
社区管理员
  • C语言
  • 花神庙码农
  • 架构师李肯
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧