| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 571 人关注过本帖
标题:a=13,为什么~a
只看楼主 加入收藏
qwe789asd4
Rank: 1
等 级:新手上路
帖 子:4
专家分:0
注 册:2006-8-24
收藏
 问题点数:0 回复次数:6 
a=13,为什么~a
a=13,为什么~a<<2等于-56啊?
13的二进制为1101,~a为0010,那~a<<2不是应该为1000吗,
正确应该怎么算才到-56?请指点
搜索更多相关主题的帖子: 二进制 
2006-08-29 15:26
lisypro
Rank: 4
等 级:业余侠客
威 望:3
帖 子:695
专家分:216
注 册:2005-9-25
收藏
得分:0 

Your machine int is 16 bit or 32 bit, not 4 bit.


长期承接管理系统
代做各种vb/ / vc小程序
QQ:82341763
手机:13623290828
群号 11619730
2006-08-29 16:27
wangxiang
Rank: 2
等 级:新手上路
威 望:5
帖 子:376
专家分:0
注 册:2006-3-28
收藏
得分:0 

以C中的两个字节表示:
a = 13 : 00000000 00001101
~a : 11111111 11110010
~a<<2 : 11111111 11001000
以下就是求这个11111111 11001000数的十进制值,可知这数是个负的
对这个数减1得11111111 11000111,
再取反: 00000000 00111000得56因为是个负的,所以就是-56


2006-08-29 16:31
sumnet
Rank: 1
等 级:新手上路
帖 子:4
专家分:0
注 册:2006-8-31
收藏
得分:0 

LS的大哥
为什么将11111111 11000111换算成十进制要减个1
搞不懂....

2006-08-31 17:12
wangxiang
Rank: 2
等 级:新手上路
威 望:5
帖 子:376
专家分:0
注 册:2006-3-28
收藏
得分:0 
求负数补吗的方法是:将该数的绝对值的二进制形式,按位取反再加1,
要求这个11111111 11001000数的十进制值,我们先把他转化成正数的,就要先减1再取反
你看C程序设计,谭的41面,就知道了

2006-09-01 00:35
sumnet
Rank: 1
等 级:新手上路
帖 子:4
专家分:0
注 册:2006-8-31
收藏
得分:0 

谢谢了....
发现学的东西不少 漏洞也不少.....

2006-09-01 00:40
daphne
Rank: 1
等 级:新手上路
帖 子:44
专家分:0
注 册:2006-7-20
收藏
得分:0 
恩~
解释的很清楚了.

2006-09-04 10:54
快速回复:a=13,为什么~a
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.040359 second(s), 7 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved