一亩三分地论坛

 找回密码
 获取更多干货,去instant注册!

扫码关注一亩三分地公众号
查看: 2161|回复: 8
收起左侧

[智力题] 求问一道bit manipulation的题目

[复制链接] |试试Instant~ |关注本帖
anonym 发表于 2014-6-1 17:17:23 | 显示全部楼层 |阅读模式

注册一亩三分地论坛,查看更多干货!

您需要 登录 才可以下载或查看,没有帐号?获取更多干货,去instant注册!

x
  1. /* howManyBits - return the minimum number of bits required to represent x in
  2. *             two's complement
  3. *  Examples: howManyBits(12) = 5
  4. *            howManyBits(298) = 10
  5. *            howManyBits(-5) = 4
  6. *            howManyBits(0)  = 1
  7. *            howManyBits(-1) = 1
  8. *            howManyBits(0x80000000) = 32
  9. *  Legal ops: ! ~ & ^ | + << >>
  10. *  Max ops: 90
  11. *  Rating: 4
  12. */
  13. int howManyBits(int x) {
  14.   return 0;
  15. }
复制代码
这道题想了好久也没啥思路。如果不算符号位的话会需要0-31个bits,也就是1,2,4,8,16的组合。所以1出现在某些位置的话就一定要加这五个数中的某一个。
但是然后咧。。。

pystone 发表于 2014-6-5 10:47:24 | 显示全部楼层
lz。。作业要自己做。。。。不过现在已经交了 可以来讨论下=。=
回复 支持 反对

使用道具 举报

 楼主| anonym 发表于 2014-6-5 11:36:24 | 显示全部楼层
pystone 发表于 2014-6-4 21:47
lz。。作业要自己做。。。。不过现在已经交了 可以来讨论下=。=

啊 我注册能进AutoLab以后就退掉了 实际上没选这课 但是可以做Lab
回复 支持 反对

使用道具 举报

Linzertorte 发表于 2014-6-5 12:44:07 | 显示全部楼层
  1. int howManyBits(int x){
  2.     unsigned mask = 1<<31;
  3.     if(!x) return 1;
  4.     int cnt = 0;
  5.     if(x&mask){
  6.         //negative
  7.         while(x&mask) cnt++, x<<=1;
  8.         cnt --;
  9.     }else{
  10.         while(!(x&mask)) cnt++, x<<=1;
  11.         cnt --;
  12.     }
  13.     return 32-cnt;
  14. }
复制代码
一亩三分地严打"顶""好贴""收藏了"之类的垃圾回复帖!被警告三次,系统会自动封杀ID!

想支持楼主,请点击帖子下方的"好苗""分享""收藏"键,酌情给楼主加大米(系统不扣你自己的分)。
积分不够看不了帖子,请参考论坛导航里的"帮助","新手提纲"里有攒积分指南
回复 支持 反对

使用道具 举报

 楼主| anonym 发表于 2014-6-5 12:48:09 | 显示全部楼层
Linzertorte 发表于 2014-6-4 23:44
一亩三分地严打"顶""好贴""收藏了"之类的垃圾回复帖!被警告三次,系统会自动封杀ID!

想支持楼主,请点 ...

哦 忘了说 不能有条件和循环
回复 支持 反对

使用道具 举报

jlsqsd 发表于 2014-6-5 13:38:54 | 显示全部楼层
还能这样?  能听课 能autolab 不算qpa 不交学费?
回复 支持 反对

使用道具 举报

 楼主| anonym 发表于 2014-6-5 13:53:07 | 显示全部楼层
jlsqsd 发表于 2014-6-5 00:38
还能这样?  能听课 能autolab 不算qpa 不交学费?

就是钻空子啦 因为AutoLab不像Blackboard 退课不会自动踢出去 CS课不少人这样干
回复 支持 反对

使用道具 举报

Nirosun 发表于 2014-6-5 15:16:54 | 显示全部楼层
原来autolab可以这么蹭,涨姿势了
二分法是个好办法,可惜我是个渣,没用好。。。
回复 支持 反对

使用道具 举报

pystone 发表于 2014-6-6 01:42:16 | 显示全部楼层
anonym 发表于 2014-6-5 11:36
啊 我注册能进AutoLab以后就退掉了 实际上没选这课 但是可以做Lab

肉疼肉好疼。。为什么不早告诉我。。。。
回复 支持 反对

使用道具 举报

本版积分规则

请点这里访问我们的新网站:一亩三分地Instant.

Instant搜索更强大,不扣积分,内容组织的更好更整洁!目前仍在beta版本,努力完善中!反馈请点这里

关闭

一亩三分地推荐上一条 /5 下一条

手机版|小黑屋|一亩三分地论坛声明 ( 沪ICP备11015994号 )

custom counter

GMT+8, 2016-12-3 12:49

Powered by Discuz! X3

© 2001-2013 Comsenz Inc. Design By HUXTeam

快速回复 返回顶部 返回列表