黑马程序员_运算符及进位转换

来源:互联网 发布:python xpath 编辑:程序博客网 时间:2024/06/06 00:50
 

---------------------- <a href="http://edu.csdn.net/heima" target="blank">android培训</a>、<a href="http://edu.csdn.net/heima" target="blank">java培训</a>、期待与您交流! ----------------------

标识符:
由26个英文字母大小写,数字,0-9 符号:_$组成
规则:1,数字不可以开头。
      2,不可以使用关键字。
java中严格区分大小写。


包名:全部小写。xxxyyyzzz
类名:所有单词首字母大写。XxxYyyZzz
变量名和函数名:第一个单词首字母小写,第二个单词开始每隔单词
      首字母大写。xxxYyyZzz
常量名:所有字母大写,多单词用下划线连接。XXX_YYY_ZZZ

内存,硬盘中数据都是二进制
ASCII 码
二进制3位代表一位,即为8进制(2的3次方为8)
二进制4位代表一位,即为16进制(2的4次方为16)
进制越大,表现形式越短(进制前加0x,例:90=0x5A)
---------------------------------------------------------------
进制转换:
1,十进制转二进制。
   原理:对十进制进行除2运算,余数依次往左写
2,二进制转十进制。
   原理:二进制乘以2(幂运算)
   110=>0*2(0)+1*2(1)+1*2(2)=6
二进制加法:逢2进1.
其他进制转换:先转成二进制(转16进制,4个为一组)


负数的二进制:正数的二进制取反+1(去反:1变0,0变1)
负数的最高位都是1。

变量:将不确定的数据进行存储,在内存中开辟一个空间。
      就是通过明确数据类型,分配不同空间。
byte:8位二进制,(-128--127)
short:16位二进制,
不同类型不可运算,转为同一类型.


int:32位二进制(默认),4个byte
long:

float(单精度):4个byte
double(双精度):8个byte(默认double)
数据类型  变量名=初始化值
float f=2.3f;后一个f代表flort型

当数据不确定时,需要对数据进行存储是,就定义一个变量来存储

char型可以运算(char字符对应ASCII 码)
/号:取整
%号:取余
负数只看左边,结果等于左边,
例如:-1%5=-1;-7%5=-2;7%-5=2
---------------------------------------------
++a;++在左,先使用a的值再加1
a++;++在右,先加1在使用a

+:加号;字符串连接符
字符串数据和任何数据使用+号都是相连接,最终都会变成字符串
"5+5="+5+5="5+5=55"
-------------------------------------------------

转义字符:通过\来转换后面字母或符号的含义
\n:换行
\r:按下回车键。windows系统中,回车键是由两个字符来表示的\r\n;
打印带双引号"\"hello\""
char中可以存中文

x+=4;即为x=x+4;

short s=4;
s=s+5;s被提升位int型,结果为int型,而s位short型,不可赋值
s+=5;只做一次赋值运算,吧右边的和赋给左边


逻辑运算符用于连接boolean类型的表达式。
与运算&。。。。。都真时真
或|。。。。。。。一个真即为真,全假即假
异或运算^。。。。。相同为假,不同为真
&和&&:
&&:左边为false时右边不运算。(短路)
-----------------------------------------------------------

位运算符(全部转换为2进制后运算)
3<<2=12: 3左移两位,后面空位补0(a<<n结果:a*(2的n次幂))
3的ASCII 码0000-0000 0000-0000 0000-0000 0000-0011
     结果:0000-0000 0000-0000 0000-0000 0000-1100
正数补0,负数补1.

6>>2=1: 右移2位(a>>n结果:a/(2的n次幂)取整)
          0000-0000 0000-0000 0000-0000 0000-0110                      
          0000-0000 0000-0000 0000-0000 0000-0001
>>:正数补0,负数补1.最高位为0,补0;最高位为1,补1.
>>>:全部补0;

~:取反,~6=-7(6取反加1)
一个数异或同一个数两次,结果还是原数。


利用位运算计算2*8更高效:2<<3(8为2的3次幂)
交换n=3和m=8的值:
   1,通过第三方变量z;
   2,n=m+n;//n=11,m=8
      m=n-m;//m=3 ,n=11
      n=n-m;//n=8,m=3
     如果n和m的值很大,容易超出int范围
   3,n=n^m;//异或
      m=n^m;//(n^m)^m
      n=n^m;//n^(n^m)


编程实现二进制转16进制:
例如:60的二进制
     0000-0000 0000-0000 0000-0000 0011-1100=60
     60&15=12
     0000-0000 0000-0000 0000-0000 0011-1100
 想与0000-0000 0000-0000 0000-0000 0000-1111
 结果0000-0000 0000-0000 0000-0000 0000-1100=12
 temp=60>>4  (60右移4位)
 temp&15=3
          0000-0000 0000-0000 0000-0000 0011
 想与0000-0000 0000-0000 0000-0000 0000-1111
 结果0000 0000-0000 0000-0000 0000-0000 0011=3
依次右移4位,直到得出所有值
编程实现:
        int num = 60;
        //获取60的最低4位
 int n1 = num & 15;
 //将12 转换为16进制
 char n = (char)(n1-10+'A');
        System.out.println(n1>9?(char)(n1-10+'A'):n1);
 //获取下一组4位,将60右移4位
 //用>>>三位右移,补0,移光
 int temp = 60 >>> 4;
 //对temp的值进行最低4位的获取
 int n2 = temp & 15;
 System.out.print(n2);
 System.out.println(n);

------------------------------------------------
if....else:
结构简化格式: 变量=(条件表达式)?表达式1:表达式2;
   三元运算符:
       好处:可以简化if else代码。
       弊端:因为是一个运算符,所以运算完必须有一个结果。

switch(表达式)//byte short int char
{
   case 1:
     break;
   case 2:
     break;
   ......
   default:
     break;
}
总在最后执行default
if与swith用法:
对具体数值且数值不多而且符合byte short int char类型时用swith。
其他情况:对区间判断,对结果为boolean判断,使用if,if的使用范围广。

 ---------------------- <a href="http://edu.csdn.net/heima" target="blank">android培训</a>、<a href="http://edu.csdn.net/heima" target="blank">java培训</a>、期待与您交流! ----------------------

详细请查看:<a href="http://edu.csdn.net/heima" target="blank">http://edu.csdn.net/heima</a>

 

原创粉丝点击