【发布时间】:2012-07-03 21:04:27
【问题描述】:
我只能使用按位运算和指针运算来解决这个问题。我正在从二进制转换为无符号整数。
我写的函数是:
unsigned int atob(const char* nptr);
atob("101") 应该返回 5,atob("11000") 应该返回 24,atob("11$") 应该返回 3,atop("") 应该返回 0。
我对按位运算还很陌生,所以我真的需要一些专门针对该领域的帮助。
编辑:
nptr 只能递增,不允许其他 inc/dec。
【问题讨论】:
-
你试过什么?这是作业吗?不允许使用比较吗?
-
如果允许您使用
*和+,您将如何解决? (提示:*2 === <<1、+可以在这里用|完成。) -
这不是家庭作业。只是学习材料。从二进制转换为十进制我完全没有问题,但我对如何使用按位运算并不一致,因为我很少将它们用于任何事情。
-
atob("101") should return 3我想你的意思是 5?
标签: c binary bit-manipulation