一、数据类型
1、两大类:
1、基本数据类型: 内存中占长度字节
逻辑型:boolean 1
整数型:byte 1
short 2
int 4
浮点数型long 8
float 4
double 8
字符型:char 2

2、引用类型:对象、接口、数组

2、常量:
布尔常量 整型常量 浮点常量 字符常量(包括转义符等) 字符串常量
转义符:
\ddd 1到3位八进制数所表示的字符(ddd)
\uxxxx 1到4位十六进制数所表示的字符
\r 回车
\f 走纸换页
\t 横向跳格TAB
\b 退格

3、/**...*/ 是java所特有的doc注释。主要是为支持JDK工具javadoc而采用的。javadoc能识别注释中用标记@标识的一些特殊变量,并把doc注释加入它所生成的HTML文件
@see:引用其他类
@version:版本信息
@author:作者信息
@param:参数名说明
@return:说明
@exception:完整类名说明
命令:
javadoc HelloDate.java
即可生成HTML文件文档

4、运算符与表达式:
条件运算符(?:)
分量运算符 .
下标运算符[]
实例运算符 instanceof
内存分配运算符 new
强制类型转换运算符 (类型)
方法调用运算符 ()

问题:
double g=18.4;
double h=g%4; //h=2.4还是h=2.39999999999999

5、逻辑运算符:
& 逻辑与 不存在短路操作
| 逻辑或
! 取反
^ 异或
&& 简洁与 存在短路操作,只要左边为false,右边不会算,直接false
|| 简洁或

6、补码:
Java使用补码来表示二进制数,在补码表示中,最高位为符号位,正数为0,负数为1。
规则:
1、正数,最高位为0,其余各位代表数值本身,+42的补码为00101010
2、负数,把该数绝对值的补码按位取反,然后对整个数加1,即为补码。如-42,00101010取反为11010101,加1,为11010110,此为-42补码。

0的补码是唯一的,00000000,-1补码为111111。

7、按位取反运算符 “~”
~是一元运算法,对其二进制位取反,0010101 取反 1101010

8、按位与运算符“&”
参与运算的两个值,如果两个相应位都为11,则该位的结果为1,否则为0,0&0=0,0&1=0,1&0=0,1&1=1。
按位与 可以用来对某些特定的位清零。
对 11010110 的第2和第5位清零,让与11101101进行按位与运算:
11010110
(&) 11101101
得到 11000100

按位与 可以用来取某个数中某些指定的位:要取11010110中的第2和第5位:
11010110
(&) 00010010
得到 00010010

9、按位或运算符 “|”
两数中有一个1,则为1
按位或 可以用来把某些特定的位置为1,11010110第4、5位置1.
11010110
(|) 00011000
得 11011110

10、按位异或运算符 “^”
两数相同为0,否则为1
按位异或 可以用来使某些特定的位翻转(求反),11010110第4、5位求反:
11010110
(^) 00011000
得 11001110

按位异或 可以实现两个值的交换,而不使用临时变量。
交换a b的值:
a = 11010110,b = 01011001
a = a^b;
11010110
(^) 01011001
得 10001111 临时a

b = b^a;
01011001
(^) 10001111
得 11010110 b

a = a^b;
10001111
(^) 11010110
得 01011001 a a与b反了

11、左移运算符: <<
左移几,右补几个0
a = 00001111,a<<2=00111100
在不产生溢出的情况下,左移一位相当于乘2,而且用左移来实现乘法比乘法运算速度要快。

12、右移运算符: >>
右端舍弃,左边最高位则移入原来高位的值:
a=00110111,a>>2=00001101
b=11010011,b>>2=11110100
右移一位相当于除2取商,速度也比除法快。

13、无符号右移运算符 >>>
高位补0
b=11010011,b>>>2=00110100

14、不同长度的数据进行位运算:
byte a ,int b, a&b,则系统首先会a的左侧24位填满,a为正,则填满0,a为负,则左侧填满1。

15、位运算的应用:
位运算可以用来处理一组布尔标志。

16、强制类型转换:
将变量从较长的数据类型转换成较短的数据类型时,必须做强制类型转换:
(类型)表达式
int a=100;
byte b = (byte)a;

7、数组:

与C C++不同,Java在数组的定义中并不为数组元素分配内存,因此[]中不用指出数组中元素的个数,但必须为它分配内存空间,这时,要用到运算符new:
arrayName = new type[arraySize];
两句全一起:
int[] score = new int[3];

注意:数组用new分配空间的同时,数组的每个元素都会自动赋一个默认值(整数为0,实数为0.0,字符为'\0',boolean型为false,引用型为null)。这是因为,数组实际是一种引用型的变量,而其每个元素是引用型变量的成员变量。

System.copyarray()方法: 复制数组,只复制元素,如果数组是引用型变量,则只复制引用,不复制对象实体。
System.arraycopy(Object a,int aop,Object b,int bop,int length);
从a数组复制到b,从aop位置开始复制到bop位置,长度为length。

转载于:https://www.cnblogs.com/yaotw718/archive/2012/11/21/2781533.html

数据与运算(以及补码)相关推荐

  1. 数字电路基础知识——组合逻辑电路实现一些简单逻辑电路 (一)(用Verilog实现:绝对值函数运算(补码问题),取对数函数(移位寄存器),取整函数)

    数字电路基础知识--组合逻辑电路实现一些简单逻辑电路 (一)(用Verilog实现:绝对值函数运算(补码问题),取对数函数(移位寄存器),取整函数) 在数字逻辑设计中,本节介绍绝对值运算函数如何用Ve ...

  2. 第二章matlab数据及其运算,第2章 MATLAB数据及其运算_习题答案

    第2章 MATLAB数据及其运算 习题2 一.选择题 1.下列可作为MATLAB合法变量名的是().D A.合计B.123 C.@h D.xyz_2a 2.下列数值数据表示中错误的是().C A.+1 ...

  3. integer超出范围_BigInteger:可以让超过Integer范围内的数据进行运算

    package cn.itcast_01; import java.math.BigInteger; /* * BigInteger:可以让超过Integer范围内的数据进行运算 * * 构造方法: ...

  4. 计算机科学导论数据运算,2-计算机科学导论-数据与运算讲述.ppt

    2-计算机科学导论-数据与运算讲述 * 包括10个十进制数字(0-9).52个英文大写和小写字母(A-Z,a-z).34个专用符号和32个控制符号,共计128个字符. * 没有在IBM以外的机器上得到 ...

  5. 【Tableau】如何使用tableau进行两列数据的运算

    如何使用tableau进行两列数据的运算 虽然有过excel基础的人很容易上手tableau这款软件,但初学者在刚刚接触tableau的时候还是会不免有些不知所措.今天以两列数据的加减乘除运算为例,简 ...

  6. vivado保存ila波形数据用MATLAB分析(补码与十进制转换)

    目录 一.保存与读取ila数据 二.数据进制转换_补码 一.保存与读取ila数据 0.把想要观测的信号线加入在线逻辑分析仪中.上板测试,trigger到想要的实时数据. 1.保存ila数据的TCL命令 ...

  7. Execl--获取任意当前单元格的前2个单元格数据做运算--求下降百分比

    Execl–获取任意当前单元格的前2个单元格数据做运算 !*利用excel的INDIRECT函数! 1.获取当前单元格数据 INDIRECT函数是Microsoft Excel 中的公式,此函数立即对 ...

  8. matlab第2章课后作业,第2章 MATLAB数据及其运算_习题答案

    第2章 MATLAB数据及其运算 习题2 一.选择题 1.下列可作为MATLAB合法变量名的是( ).D A.合计 B.123 C.@h D.xyz_2a 2.下列数值数据表示中错误的是( ).C A ...

  9. MATLAB程序设计与应用 2. 第2章 MATLAB数据及其运算 2.1 MATLAB数值数据 2.2 MATLAB矩阵的表示 2.3 变量及其操作

    MATLAB程序设计与应用 文章目录 MATLAB程序设计与应用 2. 第2章 MATLAB数据及其运算 2.1 MATLAB数值数据 2.1.1 数值数据类型的分类 2.1.2 数据的输出格式 2. ...

  10. 数据波段运算及ndvi计算

    一.实验名称: 数据波段运算及ndvi计算 二.实验目的: 学习数据波段运算及ndvi计算 三.实验内容和要求: (1)实验:练习3个波段相加 fix(b1)+b2+b3 检查一下结果,原始的图和后来 ...

最新文章

  1. 异常作弊– Java 8 Lambdas
  2. bat批处理执行python_通过批处理来运行python程序
  3. php drive mssql,wamp下对MS SQLSERVER的连接配置,PHP+THINKPHP5通过
  4. 简单实用的网游服务器架构
  5. 【笔记】(python)写入文件:写入空文件、写入多行、附加到文件
  6. 欧洲机器人实验室盘点
  7. Juniper SRX340防火墙配置
  8. F1 Score详解 查准率较高 召回率较低怎末处理?
  9. python期权价格计算器_GitHub - QSCTech-Sange/Options-Calculator: 期权价格计算器——金融工程第二次展示...
  10. idea列模式按列选取代码或按行选取代码快捷键
  11. git的了解和开发安装 以及分支合集
  12. 【人工智能行业大师访谈2】吴恩达采访 Pieter Abbeel
  13. 实用工具—SimpleMind 和Sublime Text
  14. 科比球衣退役仪式和演讲6分钟全回顾(中文字幕)
  15. 牛顿法 拟牛顿法DFP BFGS L-BFGS的理解
  16. 电气器件系列三:电流互感器
  17. Android Touch事件分发(源码分析)
  18. 【渗透测试】如何使用burpsuite对特殊密码进行爆破
  19. CodeArts Snap:辅助你编程的神器
  20. 英伟达 VLSI PD 面经

热门文章

  1. ASP.NET Excel数据导入数据库
  2. 51Testing第五期电子杂志下载
  3. 软件测试 学习之路 基本介绍
  4. idea编译android模块,Android IntelliJ IDEA 14.1:模块没有主类
  5. raspberry pi_如何保持您的Raspberry Pi更新
  6. ansible vim_Vim插件,使用Ansible自动化部署策略,Pelican入门,Linux,Joplin,Python以及更多新鲜读物
  7. 系统管理员最应该读的5本书_系统管理员的8本书
  8. 莫桑比克wcdma频段_开放医疗记录社区支持莫桑比克的新系统
  9. 登录drupal管理员_天气公司依靠Drupal来管理内容
  10. 理解node.js(Understanding node.js)