为了账号安全,请及时绑定邮箱和手机立即绑定

关于二进制的问题

关于二进制的问题

hy_wang 2017-08-11 16:03:48
初学进制 想请教大神一些问题关于二进制中的左移动如果这个二进制是个负数 也就是说首位为1根据左移定律也就是说 舍弃左边的  舍弃这个1按照我的理解 左边舍弃1  右边补0这样的话也就是舍弃后 如果首位是0 那么一个负数就转为正数了??
查看完整描述

3 回答

?
慕娘9474363

TA贡献8条经验 获得超12个赞

慕课网里不是有一篇关于二进制的教程吗?你去下来看看,或许就懂了。谢谢

查看完整回答
1 反对 回复 2017-08-12
?
bigmathbase

TA贡献4条经验 获得超5个赞

对 位运算是可以把负数转为正数的 但是你要记住,左边的移动的同时,右边*2

查看完整回答
反对 回复 2017-08-12
?
慕前端7136854

TA贡献1条经验 获得超0个赞

高手,带带我吧,我自学汇编,一个有符号整数和无符号整数转换就把我看傻了

查看完整回答
反对 回复 2017-08-12
?
春秋调

TA贡献5条经验 获得超1个赞

正数和负数并不是计算机自己定义的啊,它很单纯,只是存储了0和1
正负数之分要看你是怎样看待这串数字的
比如:
十六进制:D
假如你要把它看做负数的话那就是-3,正数就是14,正负数和计算机没有绝对的关系,只是看你怎样使用罢了

答案,,,,有点,, 跑偏啊?

查看完整回答
反对 回复 2017-08-12
?
新_day_day_new

TA贡献18条经验 获得超6个赞

int i=0x88888888;

i=i<<1;

printf("%d\n",i);

0x88888888的二进制表示是10001000100010001000100010001000左移一位后的结果是十进制的286331152也就是0x11111110二进制的00010001000100010001000100010000所以你的理解是对的,猜想也是正确的。

查看完整回答
反对 回复 2017-08-11
  • 3 回答
  • 0 关注
  • 5146 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信