操作数

Java中的位运算符 &、|、^、~、<< 和 >>

青春壹個敷衍的年華 提交于 2019-11-28 12:53:02
一、& 按位与运算符 5 & 3 = 1 5转换为二进制:0000 0000 0000 0000 0000 0000 0000 0101 3转换为二进制:0000 0000 0000 0000 0000 0000 0000 0011 规则:对应的两个二进制位都为1时,结果位就为1,其他情况都为0。 1 & 1 = 1 1 & 0 = 0 0 & 1 = 0 0 & 0 = 0 二、| 按位或运算符 5 | 3 = 7 5转换为二进制:0000 0000 0000 0000 0000 0000 0000 0101 3转换为二进制:0000 0000 0000 0000 0000 0000 0000 0011 规则:只要对应的二个二进位有一个为1时,结果位就为1。 1 | 1 = 1 1 | 0 = 1 0 | 1 = 1 0 | 0 = 0 三、^ 按位异或 运算符 5 ^ 3 = 6 5转换为二进制:0000 0000 0000 0000 0000 0000 0000 0101 3转换为二进制:0000 0000 0000 0000 0000 0000 0000 0011 异或的运算法则: 0 ⊕ 0 = 0,1 ⊕ 0 = 1,0 ⊕ 1 = 1,1 ⊕ 1 = 0(相同为0,不同为1) 这些法则与加法是相同的,只是 不带进位 ,所以异或常被认作不进位加法。 四、~

类型,值和变量

烂漫一生 提交于 2019-11-28 12:23:50
1 巧转类型 js是弱类型语言 两个操作数,一个是数字,一个是字符串时: - 运算 +拼接 将变量 a 转为字符串 :a+""; 将变量 a 转为数字 : a-0; 2 == 类型不同,尝试类型转换和比较 null==undefined //true object == number | sring :尝试将对象转为基本类型 new String('hi')=='hi' //true new Object ==new Object 3 === new Object !== new Object//对象比较比的的是引用 4 包装对象 var a = "string"; console.log(a.length) //6 a.num=10; console.log(a.num) //undefined 5 类型判断操作符 (1)typeof判断 返回一个字符串,适合基础数据类型和函数对象 typeof null //object 历史原因.如果修改,大量网站无法访问.兼容问题 (2)instanceof 基于原型链判断的操作符 期望左操作数是对象,否则false,期望右操作数是函数对象或函数构造器,否则抛出typeErr异常 大概原理:判断左操作数的对象的原型链是否有右对象的prototype属性 myobj instanceof Object [1,2] instanceof

RV32FDQ/RV64RDQ指令集(1)

大憨熊 提交于 2019-11-28 12:13:55
Risc-V架构定义了可选的单精度浮点指令(F扩展指令集)和双精度浮点指令(D扩展指令集)。 Risc-V架构规定: 处理器可以选择只实现F扩展指令子集而不支持D扩展指令子集;但是如果支持了D扩展指令子集,则必须支持F扩展指令子集。 Risc-V架构规定的浮点数符合IEEE754 2008规则,可以从下面的链接了解浮点数格式的详细信息: https://www.cnblogs.com/german-iris/p/5759557.html Risc-V规定,如果支持单精度浮点指令或者双精度浮点指令,则需要增加一组独立的通用浮点寄存器组,包括32个通用浮点寄存器,标号位f0到f31。如果仅支持F扩展指令子集,则每个通用寄存器是32位的,如果支持D扩展那指令子集,则每个通用寄存器是64位的。 Risc-V架构规定,如果支持单精度浮点指令或者双精度浮点指令,需要增加一个浮点控制状态寄存器fcsr,该寄存器是一个可读可写的csr寄存器。 fcsr寄存器包含浮点异常标志域(fflags),不同的标志位表示不同的异常类型。如果浮点运算单元在运算中出现了相应的异常,则会将fcsr寄存器中对应的标志位设置为1,且会一直保持累积。软件可以通过写0的方式单独清除某个异常标志位。 根据IEEE-754标准,浮点运算需要指定舍入模式(rounding mode),Risc

Python数据类型之“数字(numerics)”

丶灬走出姿态 提交于 2019-11-28 11:56:07
上一节内容说的是 “Python基本语法” ,本节主要讲下Python中的数据类型。 存储在内存中的数据通常有两个属性: 在内存中的存放位置 :这个存放位置通过变量名可以找到; 在内存中的存放方式 :这个由数据类型决定,如占几个字节的空间、占用空间是否需要连续等。 Python中有很多内置类型(built-in types),内置类型可以理解为构建在Python Interpreter(Python解释器)里面的类型。Python中主要的内置类型有以下几种: numerics(数字) :int、float、complex、bool sequences(序列/有序集合) : str、list、tuple、range sets(无序集合) :set mappings(映射) :dict classes(类) instance(实例) exceptions(异常) 我们主要说下numberics、sequences、sets 和 mappings这四种内置数据类型。为了避免篇幅过长,我们将对它们分别进行说明。 数字类型(numerics) Python3 中的数字支持int(整型)、float(浮点型)、complex(复数)。Python文档中bool(布尔值)不属于数字类型,但是这里也把bool类型放在这里来说,因为bool是int的子类。就像大多是语言一样

2.5 习题

你离开我真会死。 提交于 2019-11-28 11:21:37
题2.1 8086/8088 通用寄存器的通用性表现在何处?8个通用寄存器各自有何专门的用途?哪些寄存器可作为存储器寻址方式的指针寄存器? 答:8086、8088通用寄存器既可用存储数据,也可用于存放运算的中间值、运算结果。8个通用寄存器的专门用途如下:   AX:字乘法、字除法、字I/O、累加器   AL:字节乘法、字节除法、字节I/0、十进制算术运算   AH:字节乘法、字节除法   BX: 存储器指针   CX:串操作、循环控制中的计数器   CL: 移位计数器   DX:字乘法、字除法、间接I/0   SI: 存储器指针(串操作源指针)   DI:存储器指针(串操作目的指针)   BP:存储器指针(默认为堆栈段)   SP:指令指针 可作为存储器寻址方式指针寄存器为:BX、SI、DI、BP 题2.2 从程序员的角度看,8086/8088有多少个可访问的16位寄存器?有多少个可访问的8位寄存器? 答:AX,BX,CX,DX,SI,DI,BP,SP,DS,CS,ES,SS,IP,FLAG。共14个16位寄存器。AH,AL,BH,BL,CH,CL,DH,DL共8个8位寄存器。 题2.3 寄存器AX与寄存器AH和AL的关系如何?请写出如下程序片段中每条指令执行后寄存器AX的内容: MOV AX,1234H AX=1234H MOV AL,98H    AX=1298H MOV AH

通用寄存器和内存

强颜欢笑 提交于 2019-11-28 10:18:47
计算机在运行时,需要提供数据的容器; 容器由内存和cpu提供,内存提供的容器比较多;cpu提供的容器较少但其中的数据计算速度快; cpu提供的容器就是寄存器,寄存器有特定的数据宽度,决定了该寄存器存储数据的范围; 1.常用的32位寄存器 32位通用寄存器还可以拆分来使用;将低16位当做16位寄存器; 一些16位寄存器也可以继续拆分;高8位和低8位分别当做8位寄存器来使用; 2.mov指令 mov 目标操作数,源操作数 作用:拷贝源操作数到目标操作数 注意: 源操作数可以是立即数、通用寄存器、段寄存器、内存单元; 目标操作数可以是通用寄存器、段寄存器、内存单元; 操作数的宽度必须一样; 源操作数和目标操作数不能同时为内存单元; mov的语法: 3.从内存中读写数据 内存由一段连续的内存单元组成,每个内存单元有8位; 32位机正常的寻址范围为0~FFFFFFFF,也就是4GB; 但这不是确定的,有些内存区域可能被固定无法访问,并且操作系统也可能扩展内存; 数据有3中类型: 字节 ->byte,宽度为8位 字 ->word,宽度为两个字节16位 双字 ->dword,宽度为两个字32位 用指令从内存中读写数据时,需要指明数据的类型 例如: mov dword ptr ds:[0x0012FF34],0x12345678 4.内存寻址的几种方式 1)[立即数] 从内存中读

关于C#中的“?”

隐身守侯 提交于 2019-11-28 08:39:04
目录 1. 可空类型修饰符(T?) 2. 三元(运算符)表达式(?: ) 3. 空合并运算符(??) 4. NULL检查运算符(?.) shanzm-2019年8月23日 19:59:46 1. 可空类型修饰符(T?) 强类型语言中引用类型可以为空,如: string str=null; 而你若是定义一个值类型为空,则是会报错的。 然而,在处理数据库和其他包含可能未赋值的元素的数据类型时,我们希望可以将 null 赋值给数值类型或布尔型的功能特别有用。例如,数据库中的布尔型字段可以存储值 true 或 false,或者,该字段也可以未定义 所以C# 提供了一个特殊的数据类型,Nullable 类型(可空类型),可空类型可以表示其基础值类型正常范围内的值,和 null 值。 例如,Nullable< Int32 >,读作"可空的 Int32",可以被赋值为 -2^31 到2^31-1 之间的任意值,也可以被赋值为 null 值。 类似的,Nullable< bool > 变量可以被赋值为 true 或 false 或 null。 实际上,Nullable类型是一个结构体,它有两个公开可读字段:HasValue和Value。 HasValue是一个布尔值,当有值存储时它为真,当变量值为null时HasValue为假。当HavValue为真是时,可以取得变量的值;为假时

js操作符

风流意气都作罢 提交于 2019-11-28 05:33:00
运算符 operator 5 + 6 表达式 组成 操作数和操作符,会有一个结果 算术运算符 + - * / % 一元运算符 一元运算符:只有一个操作数的运算符 5 + 6 两个操作数的运算符 二元运算符 ++ 自身加1 -- 自身减1 前置++ var num1 = 5;++ num1; ​var num2 = 6;console.log(num1 + ++ num2); 后置++ var num1 = 5;num1 ++; var num2 = 6 console.log(num1 + num2 ++); 猜猜看 var a = 1; var b = ++a + ++a; console.log(b); var a = 1; var b = a++ + ++a; console.log(b); var a = 1; var b = a++ + a++; console.log(b); var a = 1; var b = ++a + a++; console.log(b); 逻辑运算符(布尔运算符) && 与 两个操作数同时为true,结果为true,否则都是false|| 或 两个操作数有一个为true,结果为true,否则为false! 非 取反 关系运算符(比较运算符) < > >= <= == != === !== ==与===的区别:==只进行值得比较,==

C++运算符重载

吃可爱长大的小学妹 提交于 2019-11-28 05:11:02
转载自:https://www.cnblogs.com/liangxiaofeng/p/4311796.html 1.运算符重载定义: C++中预定义的运算符的操作对象只能是基本数据类型。但实际上,对于许多用户自定义类型(例如类),也需要类似的运算操作。这时就必须在C++中重新定义这些运算符,赋予已有运算符新的功能,使它能够用于特定类型执行特定的操作。运算符重载的实质是函数重载,它提供了C++的可扩展性,也是C++最吸引人的特性之一。 运算符重载是通过创建运算符函数实现的, 运算符函数定义了重载的运算符将要进行的操作。运算符函数的定义与其他函数的定义类似,惟一的区别是运算符函数的函数名是由关键字operator和其后要重载的运算符符号构成的。运算符函数定义的一般格式如下: <返回类型说明符> operator <运算符符号>(<参数表>) { <函数体> }  2.运算符重载时要遵循以下规则: (1) 除了类属关系运算符"."、成员指针运算符".*"、作用域运算符"::"、sizeof运算符和三目运算符"?:"以外,C++中的所有运算符都可以重载。 (2) 重载运算符限制在C++语言中已有的运算符范围内的允许重载的运算符之中,不能创建新的运算符。 (3) 运算符重载实质上是函数重载,因此编译程序对运算符重载的选择,遵循函数重载的选择原则。 (4)

06.变量常量运算符

爱⌒轻易说出口 提交于 2019-11-28 04:57:44
变量 使用驼峰法则命名 常量 全部大写命名 final修饰 运算符 算数运算符 +-*/ :加减乘除 当/的两边都是整数是,表示整数除法,否则为浮点除法 % :取模操作 ps: 整数/0 会产生一个异常,而 浮点数/0 产生一个 无穷大 或者 NaN 的结果 整数运算: 1.如果两个操作数有一个为Long,则结果也为long。 2.没有long时,结果为int。即使操作数全为short,byte,结果也是int。 浮点运算: 3.如果两个操作数有一个为double,则结果为double。 4.只有两个操作数都是float,则结果才为float 取模运算: 其操作数可以为浮点数,一般使用整数,结果是“余数”, “余数”符号和左边操作数相同 ,如:7%3=1,-7%3=-1,7%-3=1 逻辑运算符 位运算符 ps:左移n位相当于乘n个2,右相当于除 运算符优先级 ps:逻辑与、逻辑或、逻辑非的优先级一定要熟悉!(逻辑非>逻辑与>逻辑或) 例如allb&&c的运算结果是:all(b&&c),而不是(allb)&&c 来源: https://blog.csdn.net/li1009584626/article/details/100007835