位运算符和移位运算符

2022/6/13 23:20:41

本文主要是介绍位运算符和移位运算符,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!

<< 左移 乘2
>> 右移 除2
|  按位 or
&  按位 and
^  按位 异或 不同为1 ,相同为0

应用示例二进制转10进制
https://leetcode.cn/problems/sum-of-root-to-leaf-binary-numbers/

/**
 * Definition for a binary tree node.
 * public class TreeNode {
 *     public int val;
 *     public TreeNode left;
 *     public TreeNode right;
 *     public TreeNode(int val=0, TreeNode left=null, TreeNode right=null) {
 *         this.val = val;
 *         this.left = left;
 *         this.right = right;
 *     }
 * }
 */
public class Solution {
    public int SumRootToLeaf(TreeNode root)
        {
            return DFS(root, 0);
        }

        public int DFS(TreeNode root, int val)
        {
            if (root == null)
            {
                return 0;
            }
            val = (val << 1) | root.val;
            if (root.left == null && root.right == null)
            {
                return val;
            }
            return DFS(root.left, val) + DFS(root.right, val);
        }
}
  • 参考:https://docs.microsoft.com/zh-cn/dotnet/csharp/language-reference/operators/bitwise-and-shift-operators


这篇关于位运算符和移位运算符的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!


扫一扫关注最新编程教程