精华内容
下载资源
问答
  • c ++ 单目 双目 运算

    1 单目运算

    #include<iostream>
    using namespace std;
    //复数
    class Complex{
        public:
        double real,image;
        Complex()=default;
        Complex(double r, double i)
        :real(r),image(i){}
        ~Complex(){}
        Complex operator++(int i)
        {
            Complex tmp;
            tmp.real = this->real++;
            tmp.image = this->image++;
            return tmp;
        }
        Complex operator++()
        {
            this->real++;
            this->image++;
            return *this;
        }
    };
    
    int main()
    {
        Complex c1(10,20);
        Complex c2;
    //  c2 = c1++;
        c2 = ++c1;
        cout<<c1.real<<endl;
        cout<<c1.image<<endl;
        cout<<c2.real<<endl;
        cout<<c2.image<<endl;
        return 0;
    }
    

    2 双目运算符重载complex.cpp

    #include<iostream>
    using namespace std;
    //复数
    class Complex{
        public:
        double real,image;
        Complex()=default;
        Complex(double r, double i)
        :real(r),image(i){}
        ~Complex(){}
        Complex add(Complex c)
        {
            Complex tmp;
            tmp.real = this->real+ c.real;
            tmp.image= this->image+c.image;
            return tmp;
        }
        Complex operator+(Complex c)
        {
            Complex tmp;
            tmp.real = this->real+ c.real;
            tmp.image= this->image+c.image;
            return tmp;
        }
    friend Complex operator-(Complex c1,Complex c2);
    };
    Complex operator-(Complex c1,Complex c2)
    {
            Complex tmp;
            tmp.real = c1.real - c2.real;
            tmp.image= c1.image-c2.image;
            return tmp;
    }
    
    int main()
    {
        Complex c1(10,20);
        Complex c2(10,20);
        Complex c3 ;
        c3 = c1+c2;
    //  c3 = c1.add(c2);
        cout<<c3.real<<endl;
        cout<<c3.image<<endl;
    
        c1 = c3 - c3;
        cout<<c1.real<<endl;
        cout<<c1.image<<endl;
        return 0;
    }
    
    展开全文
  • 这系列的上一章,实现了计算器...现在这篇文章是实现计算器的基本操作,按下数字按钮(Button)使数字添加到编辑框(TextBox),实现单目运算 (取反 开平方根 取倒数 退位键 CE键) 正文开始: 首先让我们 对程序进行初始化操

    这系列的上一章,实现了计算器的界面

    链接: http://blog.csdn.net/yangdan3611925/article/details/49451303


    现在这篇文章是实现计算器的基本操作,按下数字按钮(Button)使数字添加到编辑框(TextBox),实现单目运算 (取反 开平方根 取倒数 退位键 CE键)


    正文开始:

    首先让我们 对程序进行初始化操作:

    双击程序窗口(注意不要点击 Button TextBox 等) ,VS 应该会跳转到写代码的界面 如下图


    在里面写上 ,可 copy 上去

                Rtext.Enabled = false;      //作用: 禁止人为手动修改
                Ctext.Enabled = false;      //如上
                Rtext.Text = "";            //初始化 显示
                Ctext.Text = "0";           //如上
    这样写上去




    现在是让 数字按钮 按下后,能使数字添加到 编辑框(TextBox)中.

    选中一个 一个数字按钮,然后在属性 那里找到事件 ,然后再寻找到 Click ,并在它对应的编辑框中写下 NumBtn_Click 按下回车键  ,如下图


    回车键按下后,应该会跳转到写代码的界面 ,下图就是 实现数字按钮 按下 的事件的地方


    在中写上 下面代码. (作用基本写在注释里面)

                string numStr= (sender as Button).Text;     //sender 是触发这个事件的成员 ,
                                                            //我们是一个按钮按下这个事件触发,所以要 将其转换为 Button 类型,
                                                            //再看按钮的Test值 是我们要添加并显示的数字,我们就直接取出来
    
                if (Ctext.Text == "0")
                    // 如果为零的话,说明这是初始值 overload
                    Ctext.Text = numStr;
                else
                    Ctext.Text += numStr;
    


    接下了 是让其他的数字按钮可以触发 这个事件( NumBtn_Click )

    选中其他的数字按钮->属性框->事件->Click ,在下拉框中选择 NumBtn_Click .所以的 数字按钮都重复这个操作 具体如下图


    现在可以按下 F5 ,看看效果


    我们现在可以使用数字键了,

    接下来要实现 小数点的按钮 (Spot_Btn)

    同样,双击 Spot_Btn这按钮,会跳转到代码界面 ("  private void Spot_Btn_Click(object sender, EventArgs e)  " ) 这个方法

    在里面写上

                string str = (sender as Button).Text;   // 这个str 其实就是 "." 一个英文字符'点'
    
                if (Ctext.Text.IndexOf(str) == -1)      // IndexOf 是 在字符串中寻找某个字符 , 如何不存在返回 -1
                {                                       // 程序不可能有多个小数点(只能有一个),
                                                        // 所以 只有 Ctext.Text.IndexOf(str) == -1 时,才向Ctext添加 '.'
                    Ctext.Text += str;
                }

    现在我们可以输入小数点了


    //----------

    现在我们实现单目运算 (取反 开平方根 取倒数 退位键 CE键)


    先来 取反 ( ± )

    双击 Opp_Btn 按钮

    在代码中写上

                string str = Ctext.Text;                //取出显示的文本(输入的数字)
                double val = double.Parse(str);         //通过 double.Parse() 将 string类型 转换为 double leix
                val = -val;                             //取反
                Ctext.Text = val.ToString();            //将取反后的值 重新显示出去( 赋值给Ctext.Text )


    开平方根

    双击 Sqrt_Btn ,在代码中写

                string str = Ctext.Text;                //取出显示的文本(输入的数字)
                double val = double.Parse(str);         //通过 double.Parse() 将 string类型 转换为 double leix
                if (val<0)                              //负数开不了平方根
                    MessageBox.Show("负数不可开平方根!", "错误!");
                val = Math.Sqrt(val);                   //调用库函数 计算 平方根
                Ctext.Text = val.ToString();            //重新显示出去( 赋值给Ctext.Text )


    取倒数

    和上面两个相似,双击对应的按钮.写上代码

                string str = Ctext.Text;                //取出显示的文本(输入的数字)
                double val = double.Parse(str);         //通过 double.Parse() 将 string类型 转换为 double leix
                if (val == 0.0)
                    MessageBox.Show("零不可做分母!", "错误!");
                else
                    val = 1 / val;                      //取倒数
    
                Ctext.Text = val.ToString();            //重新显示出去( 赋值给Ctext.Text )


    退位键

    不多说,如上,在对应的区域写上

                string str = Ctext.Text;                //取出显示的文本(输入的数字)
                if (str.Length==1)                      //如果显示的一个数字,将他变成0
                    str = "0";
                else                                    //其他的 取前面的 n-1 个字符
                    str = str.Substring(0, str.Length - 1);
                Ctext.Text = str;   


    CE键

    同上,写上代码

    Ctext.Text = "0";




    OK这一部分就写完了,可以测试下

    到当前进度的代码下载在下面链接中

    链接:http://pan.baidu.com/s/1dDEyp25 密码:1n4b

    展开全文
  • 其中又分有单目运算符和二目运算符; 一、单目运算符:只对单独一个操作元(变量)进行操作; -------- 其中自增、自减运算符++、--就是典型的单目运算符; 自增、自减运算符的使用特点: 1、他们在使用时可以...

    前言:

         Java提供了丰富的运算符,例如算术运算符、关系运算符、逻辑运算符、位运算符等;

         其中又分有单目运算符二目运算符

    一、单目运算符:只对单独一个操作元(变量)进行操作;

    -------- 其中自增、自减运算符++、--就是典型的单目运算符;

    自增、自减运算符的使用特点:

    1、他们在使用时可以放在操作元之前,也可以放在操作元之后,不过所蕴含的意义是不一样的;

            --- 当放在操作元之前,如 ++x ; (--x ;) 代表在使用 x 之前,先使 x 的值加 1(减1);以下代码进行演示:

    public static void main(String[] args) {
    		int x = 1;
    		++x;
    		System.out.println(x);  //输出x为2
    		--x;
    		System.out.println(x);  //输出x为1
    	        int y = 10;
    		System.out.println(y);  //输出y为10
    		y = ++x;                //x是先进行加1操作,再将值赋给y;
    		System.out.println(y);  //输出y为2
    		System.out.println(x);  //输出x为2
    	}

            --- 当放在操作元之后,如 x++ ; (x-- ;) 代表在使用 x 之后,再使 x 的值加 1(减1);以下代码进行演示:

    public static void main(String[] args) {
    		int x = 1;
    		x++;
    		System.out.println(x);  //输出x为2
    		x--;
    		System.out.println(x);  //输出x为1
    		int y = 10;
    		System.out.println(y);  //输出y为10
    		y = x++;                //x是先将值赋给y之后,才进行加1操作的;
    		System.out.println(y);  //输出y为1
    		System.out.println(x);  //输出x为2
    	}

    2、操作元必须是一个整数类型或者浮点类型的变量,作用都是使变量的值加1或者减1;

    二、二目运算符:同时对两个操作元(变量)进行操作;

    -------- 二目运算符有:

    加减运算符 +,-
    乘除运算符 *,/
    求余运算符 %
    关系运算符 > , < , >= , <= , == , !=
    赋值运算符 =

    其中需要注意的是:逻辑运算符 && , || , ! 

    逻辑运算符中的 && 与 || 是二目运算符 ;

    逻辑运算符中的 是单目运算符 ;

    算术运算符包括:加减运算符、乘除运算符、求余运算符 ;

    加减运算符:+,- ;

    1、结合计算的顺序是从左到右的;例如:15+5-5 ; 是先计算15+5,在将20进行减5,最后结果为15;

    2、加减运算符的操作元是整数类型或者浮点类型的数据;

    3、加减运算符的优先级为4级;

    乘除运算符:*,/ ;

    1、结合计算的顺序是从左到右的;例如:2*8/4 ; 是先计算2*8,在将16进行除4,最后结果为4;

    2、乘除运算符的操作元是整数类型或者浮点类型的数据;

    3、乘除运算符的优先级为3级;

    求余运算符:%;

    1、结合计算的顺序是从左到右的;例如:2*8%2 ; 是先计算2*8,在将16进行求余2,最后结果为0;

    2、求余运算符的操作元是整数类型或者浮点类型的数据;

    3、求余运算符的优先级为3级;

    算术表达式指:用算术运算符和括号连接起来的 符合Java语法规则的式子;

    如:x+2*y+10+5*(z+20) ;

    关系运算符: > , < , >= , <= , == , != ; (大于、小于、大于等于、小于等于、等于、不等于)

    1、关系运算符的运算结果是boolean类型的,不是true,就是false,当运算符对应的关系成立时,则为true,否则为false;

    如:  5>10 ; 关系不成立,结果为false ; 5>1 ; 关系成立,结果为true ;

    2、关系运算符中,大小关系运算:> , < , >= , <= 的优先级为6 ;

    3、关系运算符中,相等关系运算:== , != 的优先级为7 ;

    4、结合计算的顺序是从左到右的;

    关系表达式指:结果为数值型的变量(x+y)或表达式(4+5)通过关系运算符形成的关系表达式;

    如 x+y>4+5 ;

    赋值运算符: = ;

    1、对于赋值运算符,右边的操作元必须是变量,不能是常量或者表达式;

    如:x = 10 ; y = 11 ; 正确, 不能是 10 = x ;11 = y;

    2、赋值运算符的优先级为14级;

    3、结合计算的顺序是从右到左的;

    4、赋值运算符不能跟关系运算符中的 == 等号关系运算符混淆;如 12 = 12 ; 这是错误的;

    逻辑运算符:&& , || , ! ; (逻辑与、逻辑或、逻辑非)

     1、逻辑与 (&& )优先级为11,当运算符左右两边的表达式都为真时,整个表达式的值才为真;

    如:if( top1>0 && top2>5 )  当 top1>0 为真  ,  top2>5 为真 时 ,则if中表达式的值才为真;

    扩展:if( top1>10 && top2<50 )  当 top1>10 为假时  , 则不继续判断 top2<50 ,默认表达式为假 ;以下代码进行演示:

    int top1 = 1 , top2 = 2;
    if(top1>10 && top2<50){
        System.out.println(top1);  //逻辑表达式为真则输出top1
    }else{
        System.out.println(top2);  //逻辑表达式为假则输出top2
    }

    2、逻辑或 ( || )优先级为12,对于运算符左右两边的表达式,当其中一边的表达式为真时,整个表达式的值也为真;

    如:if ( top1>10 || top2>15 )  当 top1>10 为假  ,  则继续对 top2>15 进行判断 ,当top2>15为真,则整个表达式的值为真;

    扩展:if ( top1>10 || top2>50 )  当 top1>10 为真时  , 则不继续判断 top1>50 ,默认表达式为真 ;以下代码进行演示:

    int top1 = 100 , top2 = 20;
    if(top1>10 || top2>50){
        System.out.println(top1);  //逻辑表达式为真则输出top1
    }else{
        System.out.println(top2);  //逻辑表达式为假则输出top2
    }

    3、逻辑非( ! )优先级为2 ,将逻辑表达式的值变成相反的值;

    以下代码进行演示:top1>10 为真,使用逻辑非之后 !(top1>10) 则为假,最后结果输出 20 ;

    int top1 = 100 , top2 = 20;
    if( !(top1>10) ){
        System.out.println(top1);  //逻辑表达式为真则输出top1
    }else{
        System.out.println(top2);  //逻辑表达式为假则输出top2
    }

    扩展: 不同类型之间运算时的精度问题

    基本数据类型的精度从 “ 低 ” 到 “ 高 ” 排列:

    byte、short、char、int、long、float、double

    1、当表达式中有 double 类型的运算时,则按 double 类型进行运算;

    如:5.6 / 2 +10  ,结果输出 12.8 ;

    2、当表达式中最高精度为 float 类型的运算时,则按 float 类型进行运算;

    如:6.6f / 2 +10  ,结果输出 13.3 ;此时的 13.3 是 float 类型的;

    double intd = 5.6/2 + 10 ;
      System.out.println(ints);    //输出 12.8
    
    float intf = 6.6f/2 + 10 ;     //输出 13.3
      System.out.println(intf);
    intf = intd ;   //报错Type mismatch: cannot convert from double to float

    3、当表达式中最高精度为 long 类型的运算时,则按 long 类型进行运算;

    如 :12L+9*2 , 结果输出 30 ;此时的 30 是 long 类型的;

    4、当表达式中最高精度为 int 类型或者低于 int 类型的运算时,则按 int 类型进行运算;

    如 :20 + 15 * 2 ,结果输出 50 ;此时的 50 是 int 类型的;

            int intt = (byte) 10 + 'a' ;  结果输出 107 ;此时的 107 是 int 类型的;

    特别注意:Java中不能把超过 byte 、short 、char 的取值范围的算术表达式的值赋给 byte 、short 、char 类型的变量;

    如:byte intb = 20 + 'a' ;  结果输出 117 ;此时的 117是int类型的常量 ;

    因为117没有超过byte的取值范围,所以程序编译通过;

    当:byte intbb = 40 + 'a' ;  // 报错:Type mismatch: cannot convert from int to byte

    因为此时 40 + 'a' 输出结果为 137 ,已经超过了byte的取值范围,所以程序报错;

    需要详细了解为什么int类型常量可以直接赋予byte类型变量可以访问下面链接:

    https://blog.csdn.net/LagerSwan/article/details/104061692

    展开全文
  • 关于单目运算符、按位运算

    千次阅读 2018-08-29 18:27:08
    今天看到大佬重构我的啰嗦...问后得知是按位运算 为什么要把原来的绝对比较 === 、 !== 更换为按位运算呢 我还没想通。。。。 虽然被说了一顿基础知识薄弱 但是学到了不亏 真想知道该从哪里学习到这些东西

    今天看到大佬重构我的啰嗦代码时
    用到了
    xxx & xxx
    xxx |= xxx

     let errorMsg = "";
            if (this.flag & TipType.InputNull)
                errorMsg += "文件名不能为空! "
            if (this.flag & TipType.StrIllegal)
                errorMsg += `文件名不能包含下列字符:\ / : * ? " < > |  `;
            if (this.flag & TipType.isExist)
                errorMsg += "已存在同名文件,仍然使用该命名吗?";

    以及

        if (this.regex.test(inputValue))
            this.flag |= TipType.StrIllegal;
        else if (inputValue === "")
            this.flag |= TipType.InputNull;

    问后得知是按位运算
    为什么要把原来的绝对比较 ===!== 更换为按位运算呢
    我还没想通。。。。
    虽然被说了一顿基础知识薄弱 但是学到了不亏

    真想知道该从哪里学习到这些东西

    展开全文
  • 2、 -i:对该数求补运算,即每位取反运算,再加1。  取反, 1 0...0(31个0)-> 0 1...1(31个1),再加1得 1 0...0(31个0), 该补码表现为最小负数 -2147483648,并没有原码和反码; 3、1-i:补码...
  • n++ 的值等于 n 自增前的值 即 6 ++n 的值等于 n 自增后的值 n 为 6 上例中 n 为 6 n = 5;... // 运算结束后 pre 为 7 答案补充也就是说++N是先自增后参与运算 即 5 所以 pre 最后得到的值为 7 |||
  • 算术运算 算术运算:用于各类数值运算.包括加(+)、减(-)、乘(*)、除(/)、求余(或称模运算,%)、自增(++)、自减(–)共七种. 算术运算简称运算。 指按照规定的法则和顺序对式题或算式进行运算,并求出结果的过程。包括...
  • 单目运算符重载

    2018-04-06 00:53:19
    前置单目运算符重载规则:设U为前置单目运算符,oprd为类A的对象,则U应被重载为A类的成员函数方式:oprd.operator U()后置单目运算符重载规则:后置单目运算只有两个:"++"和"--"很显然"+...
  • 单目运算符、双目运算符

    千次阅读 2017-06-19 13:58:04
    单目运算符、双目运算符1、单目运算符在运算中只要1个数字参与运算的叫单目运算。 只有一个操作数。 例子: 逻辑非运算符【!】、按位取反运算符【~】、自增自减运算符【++ –】、负号运算符【-】、类型转换运算符...
  • 单目结构光三维重建 基于结构光的重建包括了双目三维重建和单目三维重建,双目的重建方法主要采用双目立体视觉算法来匹配两幅图片的相位信息,可以参考我的多频外差双目重建,这里不做介绍了。主要还是介绍下我做的...
  • 单目运算符和双目运算符

    千次阅读 2018-11-28 09:32:48
    单目运算符和双目运算符 运算所需变量为两个的运算符叫做双目运算符·或者要求运算对象的个数是2的运算符称为双目运算符。 单目运算符是运算所需变量为一个的运算符,又叫一元运算符 ...
  • 有的地方叫做单目,双目和三目运算符。简单的理解就是,有几个参数参与运算就是几目运算符。有一个特殊的是-,它既可以是双目运算符,减法;也可以是单目运算符,负号。 举例: 一元:++,--,! 即:++a,a++,!a ...
  • 关系运算

    2018-09-10 19:53:23
    选择: 选择满足条件的记录 , 从行的角度的 单目运算 (操作的是一个表) 投影: 选择表中满足条件的列,从列的角度的 单目运算 连接: 将两个表中的行按照一定的条件横向结合生存的新表. 双目运算 (操作的是两个表)...
  • 如何单目运算符和双目运算符以及三目运算符

    万次阅读 多人点赞 2017-09-09 23:38:12
    单目运算符是指运算所需变量为一个的运算符,又叫一元运算符,其中有逻辑非运算符:!、按位取反运算符:~、自增自减运算符:++, –等。 逻辑非运算符【!】、按位取反运算符【~】、自增自减运算符【++, –】、...
  • C++之单目运算符重载

    千次阅读 2015-02-06 09:20:23
    单目运算符只有一个操作数,如!a,-b,&c,*p,还有最常用的++i和--i等。重载单目运算符的方法与重载双目运算符的方法是类似的。但由于单目运算符只有一个操作数,因此运算符重载函数只有一个参数,如果运算符重载...
  • 单目视觉测距

    千次阅读 2019-04-23 10:09:25
    单目视觉测距 一、单目视觉测距背景 单目视觉测距一般采用对应点标定法来获取图像的深度信息,对应点标定法是指通过不同坐标系中对应点的对应坐标求解坐标系的转换关系,但对应点标定法,在标定过程中,由于受器材...
  • 如何 利用图像特征检测与匹配获得高质量的路标,关系到单目视觉SLAM的鲁棒性。 图像特征可分为:点特征、直线特征、边缘、轮廓 相比于其他,点特征具有对遮挡相对鲁棒,识别性好,提取速度快。点特征的检测和匹配...
  • 运算优先级

    2021-02-23 20:36:27
    所有的数学运算都认为是从左向右运算的,Java 语言中大部分运算符也是从左向右结合的,只有单目运算符、赋值运算符和三目运算符例外,其中,单目运算符、赋值运算符和三目运算符是从右向左结合的,也就是从右向左...
  • 单目、二目、三目运算符

    万次阅读 2016-08-30 14:42:24
    单目,一个运算数 i++, i--, !a, ~a双目,两个运算数 a+b a-b a*b三目,三个运算数 bc=a?b:c; (if(a) bc =b;else bc =c;) int i = 0; i = (i == 0) ? 1 : 0; ->在C语言中称为间接引用运算符,是二目运算符,优先级同...
  • OpenCV单目视觉定位(测量)系统(新增 含代码)

    万次阅读 多人点赞 2017-02-21 20:45:27
    OpenCV单目视觉定位(测量)系统,用于无人机视觉定位,视觉导航,机器人单目视觉定位
  • 单目测距算法

    千次阅读 2020-05-16 17:04:04
    单目测距算法 相似三角形 用相似三角形计算物体或者目标到相机的距离,将使用相似三角形来计算相机到一个已知的物体或者目标的距离。 假设有一个宽度为 W 的目标或者物体。然后将这个目标放在距离的相机为 D 的位置...
  • 基于单目摄像头的物体检测

    千次阅读 2019-11-05 20:43:30
    , 我们简称它 Multi task YOLO-3D, 因为它最终输出单目摄像头3D障碍物检测和2D图像分割所需的全部信息。   它和原始的YOLO V2有以下几种不同: 1. 实现多任务输出: (1)  物体检测 ,包括2D框(以像素...
  •  对于 单目视觉SLAM,可以利用 视觉几何的一些约束条件,如对极几何、PNP(perspectiveN points)等剔除错误的匹配点。  这种方法不需要频繁更新系统状态,可以获得较好的系统运动速度,但这些方法对于不同情况...
  • 单目运算符>双目运算符>三目运算符 优先及 运算符 运算类型 15(最高) () [] - > ... ~ ++ -- -*& sizeof * /% 单目运算 13 * / % 双目算术 12 + - 双目算术 11 > 移位运算 10 >= 关系运算 9
  • OpenCV单目视觉定位实现方法

    千次阅读 2020-08-05 17:29:52
    OpenCV单目视觉定位(测量)系统 The System of Vision Location with Signal Camera Abstract:This passage mainly describes how to locate with signalcamera,which bases on OpenCV library. Key words: OpenCV...
  • Python-OpenCV的单目视觉测距

    千次阅读 2020-08-08 11:06:49
        前言:        ...视觉测距作为机器视觉领域内基础技术之一而受到广泛的关注,其在机器人领域内占有重要的地位,广泛应用...而单目视觉结构简单,运算速度快而具有
  • 注意: 注意运算符重载时的函数声明形式...功能:单目运算符重载为类的成员函数 运行结果: 23:59:59 23:59:59 0:0:0 0:0:1 ----------------------------------- Author: Zhang Kaizhou Date: 2019-4-9 18:23:24...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 32,084
精华内容 12,833
关键字:

属于单目运算的是