文本粗体问题
遇到一个看不懂的地方:在对选取中文本的加粗时代码如下: 
    private   void   button1_Click(object   sender,   EventArgs   e) 
                         { 
                                     Font   oldFont; 
                                     Font   newFont; 
                                     oldFont   =   this.richTextBox1.SelectionFont; 
                                     if(oldFont.Bold) 
                                     {newFont=new   Font(oldFont,oldFont.Style&~FontStyle.Bold); 
                                     } 
                                        else 
                                                 newFont=new   Font(oldFont,oldFont.Style|FontStyle.Bold); 
                                                 this.richTextBox1.SelectionFont=newFont; 
                                                 this.richTextBox1.Focus(); 
                         } 
 先判断原来的字体是否为粗体,newFont=new   Font(oldFont,oldFont.Style&~FontStyle.Bold);这句是什么意思?我看不懂括号里面的参数,能不能解释的详细一点啊
------解决方案--------------------  ~FontStyle.Bold 按位求反,就是除了FontStyle.Bold位是0,其它位都是1,(比如111011....) 
 & 是求与操作,1&1=1 1&0=0     
 oldFont.Style&~FontStyle.Bold 
 结果可能是:其它的样式不变,就是坚决不要粗体!