﻿<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:trackback="http://madskills.com/public/xml/rss/module/trackback/" xmlns:wfw="http://wellformedweb.org/CommentAPI/" xmlns:slash="http://purl.org/rss/1.0/modules/slash/"><channel><title>BlogJava-做一个徘徊在牛A和牛C之间的人-文章分类-学习笔记</title><link>http://www.blogjava.net/zhaomingchao/category/42180.html</link><description /><language>zh-cn</language><lastBuildDate>Fri, 16 Oct 2009 03:22:45 GMT</lastBuildDate><pubDate>Fri, 16 Oct 2009 03:22:45 GMT</pubDate><ttl>60</ttl><item><title>java位操作符总结</title><link>http://www.blogjava.net/zhaomingchao/articles/298318.html</link><dc:creator>Adam</dc:creator><author>Adam</author><pubDate>Thu, 15 Oct 2009 02:19:00 GMT</pubDate><guid>http://www.blogjava.net/zhaomingchao/articles/298318.html</guid><wfw:comment>http://www.blogjava.net/zhaomingchao/comments/298318.html</wfw:comment><comments>http://www.blogjava.net/zhaomingchao/articles/298318.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/zhaomingchao/comments/commentRss/298318.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/zhaomingchao/services/trackbacks/298318.html</trackback:ping><description><![CDATA[<span style="font-family: 宋体; font-size: 12px; line-height: 16px; ">
<p><strong>以下是java位操作符的小总结，具体如下：<br />
<br />
二进制负数以它正值的补码形式表达</strong><br />
补码：反码+1等于补码<br />
比如：System.out.println(Integer.toBinaryString(-5));<br />
打印：1111 1111 1111 1111 1111 1111 1111 1011&nbsp; 不用想了肯定是32位 &nbsp;<span style="color: #ec002c; ">（Adam：因为是int类型）</span><br />
过程是这样的：<br />
一个负数，比如-5，它的二进制在java里面是这样表示<br />
1000 0000 0000 0000 0000 0000 0000 0101 &nbsp;（Adam：负值是在开头1）<br />
它的正值是：<br />
0000 0000 0000 0000 0000 0000 0000 0101 &nbsp;（Adam：正值开头是0）<br />
反码是：<br />
1111 1111 1111 1111 1111 1111 1111 1010 &nbsp; （Adam：这里是正值的反码）<br />
再加上1是：<br />
1111 1111 1111 1111 1111 1111 1111 1011<br />
即得到打印的内容</p>
<p><strong><clk style="font-size: 12px; line-height: 16px; ">java ~ 操作符，对每个二进制位的内容求反，即1变成0，0变成1</clk></strong></p>
<p>测试负数：<br />
int a = -5;//101;<br />
System.out.println(~a);<br />
打印：4<br />
过程是这样的，首先表示出来这个负数<br />
1111 1111 1111 1111 1111 1111 1111 1011（上面已经提到为什么这样表示）<br />
各位取反得到<br />
0000 0000 0000 0000 0000 0000 0000 0100<br />
转为10进制得到4</p>
<p>测试正数:<br />
int a = 5;//101;<br />
System.out.println(~a);<br />
打印：-6<br />
首先表示出来这个正数：<br />
0000 0000 0000 0000 0000 0000 0000 0101<br />
各位取反得到：<br />
1111 1111 1111 1111 1111 1111 1111 1010<br />
这个代表的就是-6了，至于为什么看最上面</p>
<p><strong>java&nbsp;&amp; 操作符，对应的二进制位进行与操作，两个都为1才为1，其他情况均为0</strong><br />
测试：<br />
System.out.println(5&amp;6);<br />
打印：4<br />
过程：<br />
5表示成：0000 0000 0000 0000 0000 0000 0000 0101<br />
6表示成：0000 0000 0000 0000 0000 0000 0000 0110<br />
进行 &amp; ：0000 0000 0000 0000 0000 0000 0000 0100<br />
得到：4</p>
<p><strong>java | 操作符，对应的二进制位进行或操作，两个都为0才为0，其他情况均为1</strong><br />
测试：<br />
System.out.println(5|6);<br />
打印：7<br />
过程：<br />
5表示成：0000 0000 0000 0000 0000 0000 0000 0101<br />
6表示成：0000 0000 0000 0000 0000 0000 0000 0110<br />
进行 | ：0000 0000 0000 0000 0000 0000 0000 0111<br />
得到：7</p>
<p><strong>java ^ 操作符 当对应二进制位值相同，该位为0 否则为1<br />
</strong>测试：<br />
System.out.println(5^6);<br />
打印：3<br />
过程：<br />
5表示成：0000 0000 0000 0000 0000 0000 0000 0101<br />
6表示成：0000 0000 0000 0000 0000 0000 0000 0110<br />
进行 ^ ：0000 0000 0000 0000 0000 0000 0000 0011<br />
得到：3</p>
<p><strong>java &lt;&lt; 操作符，左边移动，右面填充0</strong><br />
测试：<br />
System.out.println(5&lt;&lt;1);<br />
打印：10<br />
5表示成：0000 0000 0000 0000 0000 0000 0000 0101<br />
进行 &lt;&lt;1 操作：0000 0000 0000 0000 0000 0000 0000 1010</p>
<p><strong>java &gt;&gt; 操作符，左边移动，右面填充0</strong><br />
测试：<br />
System.out.println(5&gt;&gt;&gt;1);<br />
打印：2<br />
5表示成：0000 0000 0000 0000 0000 0000 0000 0101<br />
进行 &gt;&gt;&gt;1 操作：0000 0000 0000 0000 0000 0000 0000 0010</p>
<p>左移动一位相当乘以2 右移动一位相当处以2</p>
</span>
<img src ="http://www.blogjava.net/zhaomingchao/aggbug/298318.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/zhaomingchao/" target="_blank">Adam</a> 2009-10-15 10:19 <a href="http://www.blogjava.net/zhaomingchao/articles/298318.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item></channel></rss>