- 1、本文档共9页,可阅读全部内容。
- 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
请记住:
计算机存储的是源码 但是在运算的时候使用补码进行运算
-89 按两字节来运算
先得到二进制的数
0x59
-b 0101 1001
源码
1000 0000 0101 1001
反码 符号位不变,其他位按位取反
1111 1111 1010 0110
补码 +1
1111 1111 1010 0111
再把这个数取回源码
先得到反
1000 0000 0101 1000
再得到补+1 得到源
1000 0000 0101 1001
按位与 逻辑上这个符号与 相似 (全是真才为真)
0100 1000
0110 1001 相 得到
0100 1000
87 -23 得到
0x57
0000 0000 0101 0111
-23 的 补码为
0x17
-b0001 0111
1000 0000 0001 0111
1111 1111 1110 1000 ==反码
1111 1111 1110 1001 ==补码
0000 0000 0101 0111
1111 1111 1110 1001
0000 0000 0100 0001 ==最后得到的是这个
| 按位或 逻辑跟这个||符号相似 (有一个为真就为真)
1010 1010
1110 1100 相 | 得到
1110 1110
56 | -14
0x38
0000 0000 0011 1000
-14
-b 0000 1110
1000 0000 0000 1110
1111 1111 1111 0001
1111 1111 1111 0010
0000 0000 0011 1000
1111 1111 1111 0010
1111 1111 1111 1010
1000 0000 0000 0101 ==取反
1000 0000 0000 0110 ==这是得到的源码 符号为不变 这是-6
~ 按位取反 逻辑跟 ! 相似 对一个数取反得到的是它的相反数在减1
~ 5
0000 0101
1111 1010
1000 0101
1000 0110
-6
~3 == -4 ~(-5) == 4
0000 0011
1111 1100 取反 这个是补码
1000 0011 得到反码
1000 0100 源码
0000 0101
1111 1010
1111 1011 这里是取反+1
0000 0100
^ 异或 不同为一相同为零
0010 1100
0011 0010 ^
0001 1110
18 ^ -32
0x12
0000 0000 0001 0010
1000 0000 0010 0000 -32
0000 0000 0001 0010
1111 1111 1110 0000 ^ -32的补码
1111 1111 1111 0010 得到的这个也是补码
1000 0000 0000 1101
1000 0000 0000 1110 这个是源码
计算 a = a ^ b
b = a ^ b
a = a ^ b
a = -17 b = 30
a = a ^ b
1000 0000 0001 0001 -17源码
1111 1111 1110 1111 补码
0000 0000 0001 1110
1111 1111 1111 0001 这是补码
b = a ^ b
1111 1111 1111 0001 新A
0000 0000 0001 1110
1111 1111 1110 1111 新B
a = a ^ b
1111 1111 1111 0001
1111 1111 1110 1111
0000 0000 0001 1110 30
1000 0000 0001 0001 -17 这是对新B取反得到
ayub = o_a ^ o_b;
n_b = ayub ^ b == o_a;
n_a = a ^ b == ayub ^ n_b == ayub ^ o_a == o_b;
上面 ayub的意思是 a^b的区别
左移
8 2
0000 0000 0000 1000
000000 0000 0010 00
最前面的两位被取消掉 后面的两位补零
0000 0000 0010 0000 得到32
1 1
0000 0000 0000 0001
0000 0000 0000 0010 2
2 2
0000 0000 0000 0010
0000 0000 0000 1000 4
-3 3
1000 0000 0000 0011
1111 1111 1111 1100
1111 1111 1111 1101
1111 1111 1110 1000
1000 000
文档评论(0)