四、运算符

1、取模(摘自网络)

出自http://www.cnblogs.com/ppboy_dxh/archive/2011/02/18/1958175.html

我们知道,在不同的语言中,对负数执行取模运算,结果有可能会是不同的。例如,(-11)%5在python中计算的结果是4,而在C(C99)中计算的结果则是-1。

truncate除法 && floor除法
 在大多数编程语言中,如果整数a不是整数b的整数倍数的话,那么a、b做除法产生的实际结果的小数部分将会被截除,这个过程称为截尾(truncation)。如果除法的结果是正数的话,那么一般的编程语言都会把结果趋零截尾,也就是说,直接把商的小数部分去除。但是如果除法的结果是负数的话,不同的语言通常采用了两种不同的截尾方法:一种是趋零截尾(truncate toward zero),另一种是趋负无穷截尾(truncate toward negative infinity);相应的,两种除法分别被称为truncate除法和floor除法。
 事实上,可以认为不管除法的结果是正是负,truncate除法都是趋零结尾;而floor除法都是趋负无穷结尾。

取模运算
 取模运算实际上是计算两数相除以后的余数。假设q是a、b相除产生的商(quotient),r是相应的余数(remainder),那么在几乎所有的计算系统中,都满足a=b*q+r,其中|r|<|a|。因此r有两个选择,一个为正,一个为负;相应的,q也有两个选择。如果a、b都是正数的话,那么一般的编程语言中,r为正数;或者如果a、b都是负数的话,一般r为负数。但是如果a、b一正一负的话,不同的语言则会根据除法的不同结果而使得r的结果也不同,并且一般r的计算方法都会满足r=a-(a/b)*b

常见语言
(1)C/Java语言
  C/Java语言除法采用的是趋零截尾(事实上,C89对于除数或被除数之一为负数情况的结果是未定义的;C99才正式确定了趋零截尾),即truncate除法。它们的取模运算符是%,并且此运算符只接受整型操作数。一个规律是,取模运算的结果的符号与第一个操作数的符号相同(或为0)。因此(-11)%5=-11-[(-11)/5]*5=-11-(-2)*5=-1

(2)C++语言
  C++语言的截尾方式取决于特定的机器。如果两个操作数均为正,那么取模运算的结果也为正数(或为0);如果两个操作数均为负数,那么取模运算的结果为负数(或为0);如果只有一个操作数为负数,那么取模运算的结果是取决于特定实现的。

(3)Python语言
  Python语言除法采用的是趋负无穷截尾,即floor除法。它的取模运算符也是%,并且此运算符可以接受浮点操作数。一个类似的规律是,取模运算的结果的符号与第二个操作数的符号相同。因此(-11)%5=-11-[(-11)/5]*5=-11-(-3)*5=4
  这里需要注意的是,Python 3.x中"/"运算符的意义发生了变化,"/"产生的结果将不会再进行截尾;相应的"//"运算符的结果才会进行截尾。

(4)Common Lisp
  Common Lisp的特殊操作符(special operator)"/"的结果是分数,因此不会存在截尾的问题。但是Common Lisp提供了TRUNCATE函数和FLOOR函数分别对应上述的两种除法。相应的,Common Lisp的REM函数类似于C/Java语言中的取模运算;而MOD函数类似于Python语言中的取模运算。

2、自加与自减

Int a1=23;

Int b1=a1++;  OR  b1=++a1;这两个情况是先加减还是先赋值的区别。

b1 = a1++;就是 b1=a1; a1=a1+1

b1= ++a1;就是 a1=a1+1; b1=a1;

自减也是同样的…

需注意:

自加和自减的对象必须是一开始就是明确的一个值,(不能经过计算才能确定),否则编译器就会报错,“意外的类型”。如 int  a1=23 ;   int b1 =++(a1+1)

转载于:https://www.cnblogs.com/I-DO/archive/2012/10/05/2712629.html

JAVA笔记(运算符)相关推荐

  1. Java笔记04-核心类库

    Java笔记04-核心类库 Object类 1.1 常用的包 java.lang包 -该包是Java语言中的核心包,该包中的内容由Java虚拟机自动导入 如:String类,System类等java. ...

  2. Java笔记03-Constructor Override

    Java笔记03-Constructor & Override 构造方法基本概念 构造方法是类中的一种特殊方法 它是在类创建对象(实例化)的时候自动调用的方法 这个和python中的__ini ...

  3. java笔记(第一部分语法基础)

    java笔记 一. 计算机概述 1.1 计算机组成部分 1.2 人机交互方式 1.3 计算机语言 1.4 Java语言介绍 1.5 Java开发环境搭建 二.基本数据类型与运算 2.1 关键字 2.2 ...

  4. java笔记1/3 (B站hsp学java)

    JAVA基础 文章目录 JAVA基础 变量 整形(INT) 浮点型(float/double) 字符型(char) 布尔类型(boolean) 基础数据类型的转换 自动类型转换 强制类型转换 重载 可 ...

  5. Java笔记(学习中。。)

    Java笔记 eclipse的使用 常用的dos指令 预备知识 基本语法 变量 关于字符型 关于String 进制转换 运算符 流程控制 数组 数组的内存解析: 数组的Arrays工具类 面向对象 对 ...

  6. Java笔记-Java日常笔记-Java核心语言-史上最全Java笔记-Java烂笔头-实时更新(~v~)

    阿一的日常Java笔记,实时更新,有什么问题可以留言交流一下,大家一起共同进步!!! 1.Java基础 1.1.基本语法 1.1.1.关键字 ​ 定义:被java赋予特殊含义的字符串(单词): ​ 关 ...

  7. java int 运算符_Java 位运算符和 int 类型的实现

    Java 位运算符和 int 类型的实现 其他运算符 # 算术运算符 +.-.*./.++i.i++.--i.i-- # 关系运算符 ==.!=.>.=.<= # 逻辑运算符 && ...

  8. 【连载】Java笔记——是了解咖啡小可爱的第一周呢

    我是灼灼,一只初学Java的大一金渐层. 向往余秀华和狄兰·托马斯的疯狂,时常沉溺于将情感以诗相寄:追逐过王尔德.王小波的文字,后陷于毛姆和斯蒂芬·金不可自拔:热爱文学的浪潮,白日梦到底却总在现实里清 ...

  9. JAVA语言运算符有哪些?

    Java,是由Sun Microsystems公司于1995年5月推出的Java程序设计语言和Java平台的总称.用Java实现的HotJava浏览器(支持Java applet)显示了Java的魅力 ...

  10. 11.3-全栈Java笔记:线程的生命周期

    一个线程对象在它的生命周期内,需要经历5个状态. 新生状态(New) 用new关键字建立一个线程对象后,该线程对象就处于新生状态.处于新生状态的线程有自己的内存空间,通过调用start方法进入就绪状态 ...

最新文章

  1. 自定义grains_module pillar
  2. 依赖注入底层反射原理_Spring中反射与反射的原理(转载)
  3. 【20171123】【GITC精华演讲】贝业新兄弟李济宏:如何做到企业信息化建设的加减乘除...
  4. netcore - MVC的ActionFilter的使用
  5. 避免大规模故障的微服务架构设计之道
  6. Surface Book 3现身3DMark:10nm架构升级
  7. 学习 Perl(一) —— 安装及 hello world
  8. 第一次冲刺-站立会议02
  9. 【学堂在线数据挖掘:理论方法笔记】第七天(4.1)
  10. python tornade 模板扩展
  11. 玩转位图(bitmap)
  12. 澳门人均GDP比香港高,但为什么很多人感觉澳门没有香港富有?
  13. Ubuntu-图形界面和字符界面切换快捷键
  14. 速读区块链十年历史 2010年-2020年回顾
  15. 线控红外探测器的全球与中国市场2022-2028年:技术、参与者、趋势、市场规模及占有率研究报告
  16. (1-10总结)微信点餐项目-第一阶段总结
  17. 李开复:人工智能对人类真正的威胁是什么?
  18. 深度学习之梯度裁剪(Gradient Clipping)
  19. [强化学习] 从剪刀石头布中学习策略C语言实现
  20. 指针,指针,指针。。。

热门文章

  1. Linux基础命令记录
  2. 大量词云出现的时候IO的负担很大
  3. great sentences for university sentences
  4. Android内存分析和调优(上)
  5. C# 与 Unity 同名函数
  6. CNCF宣布Envoy项目正式毕业
  7. 5分钟读完华为区块链白皮书关键信息:推动构建一种新型价值网络
  8. 为nginx创建windows服务自启动
  9. log file sync
  10. 用rvest包来抓取Google学术搜索数据