由买买提看人间百态

boards

本页内容为未名空间相应帖子的节选和存档,一周内的贴子最多显示50字,超过一周显示500字 访问原贴
JobHunting版 - 负数移位是怎么搞的阿
相关主题
C语言实现mod怎么做?我们最近招JAVA+Web Service的QA,有兴趣的短信给我
问个MS 老问题来问下没有opt和绿卡找初级码工的事
关于判断stack grows up or down那道题面试题目
现代计算机中的负数都是怎么表示的vc中<<的操作
一道qualcomm面試題问一个题目
问bloomberg的面试一道很有意思的概率题
弱问一下,cracking the coding interview上有关bit manipulation的解释正确么问一个面试问题
bit shift 后的值问一个面试题,给两个数,求商和余数
相关话题的讨论汇总
话题: 30话题: 移位话题: 1111话题: 负数
进入JobHunting版参与讨论
1 (共1页)
j*****y
发帖数: 1071
1
比如
int a = -1
binary 的表示是
10000000000000000000000000000001
a >> 30 会是多少呢?
c*****a
发帖数: 808
2
-1是111111.....1111吧? in 2's complement
j*****y
发帖数: 1071
3
对的, 用 2-compliment
不过我试了
int a = -1
a>> 31 和 a>> 30 的输出都是 -1, 不理解

【在 c*****a 的大作中提到】
: -1是111111.....1111吧? in 2's complement
r*****e
发帖数: 146
4
确实, 但是>>1的时候,left most bit is 0 or 1? 还是说跟编译器相关?
I tried with g++ 4.5.2 in linux, (-1>>1)== -1...所以是补的1 in my case.

【在 c*****a 的大作中提到】
: -1是111111.....1111吧? in 2's complement
c*****a
发帖数: 808
5
觉得是这样shift的吧
8bits: 1111 1111
-1>>4
1000 0111
y*******g
发帖数: 6599
6
在c++里面是undefined

【在 j*****y 的大作中提到】
: 比如
: int a = -1
: binary 的表示是
: 10000000000000000000000000000001
: a >> 30 会是多少呢?

a**********e
发帖数: 22
7
在java 和c里面是不一样的
java 里面有>> 和>>>
-1在java中的表示是1取反+1 也就是111111.....11111(32bit)
如果你在java里面>>30 右移30位,前面要全部补1,所以还是111111.....111(32)
但是你可以试试>>>30,右移30位,前面补0,结果就是3了

【在 j*****y 的大作中提到】
: 比如
: int a = -1
: binary 的表示是
: 10000000000000000000000000000001
: a >> 30 会是多少呢?

s***g
发帖数: 1250
8
in c, sign extension
1 (共1页)
进入JobHunting版参与讨论
相关主题
问一个面试题,给两个数,求商和余数一道qualcomm面試題
请教一个面试题问bloomberg的面试
弱问个C++ 问题 (const_cast)弱问一下,cracking the coding interview上有关bit manipulation的解释正确么
C++ 题目bit shift 后的值
C语言实现mod怎么做?我们最近招JAVA+Web Service的QA,有兴趣的短信给我
问个MS 老问题来问下没有opt和绿卡找初级码工的事
关于判断stack grows up or down那道题面试题目
现代计算机中的负数都是怎么表示的vc中<<的操作
相关话题的讨论汇总
话题: 30话题: 移位话题: 1111话题: 负数