目录
前篇 复习. 什么是字节?
1.运算符 && || !
2.运算符 & | ^
3.运算符 ~ << >>
4. + 号拼接的使用
5. (a +b )? x : y 三元运算符
6. ++ -- 在前在后。
7.总结
这篇博文写的比较官方,不像以往,直接在在csdn中进行编辑描述,然后发送出去。
我开始采用在md 文档中进行编写,然后发送到csdn当中,因为我发现我上周发出去的博文,有570的浏览量。所以我想把兔C残篇开始进行积攒。让兔C残篇慢慢的发展完整。
这里我们要聊一下上周博文的精华内容,将上周博文的精华内容,再次进行描述贯通。
什么是字节?
说到字节,我们就需要阐述一下位,简单点就是科普一下基础知识。
位 是计算机内部数据,用于进行存储的最小单位。
简单点就是,计算机最小的存储单位叫位,也就是计算机存储数据的时候,它的存储单位,最小的叫做位,然后字节是数据处理的基本单位。
位 : bit 表示,简写 就是 数字 然后加个 b
字节: 大写的 Bit表示,简写 就是 数字 然后加个 B
他们之间的换算单位是 1B = 8b,即 1字节 等于 8位
基于上述,我们可以总结为:
计算机存储数据时,最小的单位叫做 位,然后计算机进行数据处理时候,最基本的单位叫做 Bit
&& 与
使用此运算符时,设置的条件必须都成立为 true,结果才会为true
即 都真皆真,一假都为假。
|| 或
使用此运算符时,设置的条件只要有一个成立为 true,结果就会为true
即 一假皆假,一真即真
当然在使用此运算符的时候,设置的第一个条件为 false,之后的条件将不会进行运算。
因为 一假皆假,结果已经产生
! 非
使用此运算符,可以进行判断时的取反设置。
例如写一个if条件
if(!作者:兔C){
System.out.println("这不是那个小丑");
}
System.out.println("这就是那个笨蛋,就是他!");
如上述,如果你浏览到的博客内容的作者不是我,那么就会输出: 这不是那个小丑,
而如果你浏览到的博客内容的作者正好是我,那么就会输出: 这就是那个笨蛋,就是他!
这就是 与或非的简单讲解
//下面我们继续聊 单& 单| 还有异或^
这三个运算符一般用于计算机进行计算时使用,我们都知道计算机是二进制的,当我们使用计算机输入十进制进行做数学计算的时候,计算机会把我们录入的十进制内容,转换为它自己的二进制方言。
//其实在这里我们 借助&& || ! 进行帮助记忆
&
使用此运算符进行计算,如果条件都为true时候,才为true
如果其中一个条件为false,那结果就为false
|
使用此运算符进行计算,如果其中一个条件为true,那结果就为true
^
使用异或符号,如果设置运算条件,在转换为二进制计算时,如果运算的位上的两数,相同,输出的就为0。
如果运算时位上的数,不同,那输出的结果就为1。
0代表 true, 1代表false时 ↓
即 运算位上的数相同,结果为 0 true
数不同,结果为 1 false
~ 取反
~ 运算符,一般用于数学计算时,取相反的值
~0 结果便为 1
~1 结果便为相反的 0
<< 左移运算符
>> 右移运算符
下面我们将要说位移运算符,如果你碰到一个面试题,例如:
面试官问: 用计算机 计算 2 * 8 时,怎么样计算的更快
我们都知道 2 * 8 就是 2 * 2 * 2 *2 的计算,我们都知道是 16
那我们怎么能让计算机帮我们更快的算出结果呢。
那这个时候就要用到 位移运算符 让转换为二进制后 位上的数移动即可。
//代码示例
//让 number 变量,在计算机中以最快的方式,得出 *8 的结果
int number = 2;
//我们知道 2 * 8 = 2*2*2*2,那我们移动其二进制上的位数。
System.out.printl(number << 3); //自己输出代码,看其结果。
使用位运算符,计算机内部,将十进制转换为二进制所对应十进制数值的八个位上的值,直接移动位上的值,得到的结果,不同于 2 * 8,换成二进制之后,计算机在内部做的运算。
简单点说,就是直接移动了位上的值,不用计算机做计算了。在位上做了手脚。
初级程序员,面试时经常会碰到的问题,
System.out.println("" + 10 +20); //结果?
System.out.println(10 +20 + ""); //结果?
其实这个不难理解,字符串"" 字符串会先进行拼接,那拼接成字符串之后,结果就变成了1020.
那字符串在后,数字在前,数字还是会进行计算的。拼接是这之后的事: 30 + " "
三元运算符不难理解,就是 ?之前 设置一个条件 然后: 前后定义两个结果,如果条件成立 就为: 前的结果,如果条件不成立,就为: 之后的结果
//示例: 获取三个数的最大值
//我们先定义三个数值
int numbeA = 10;
int numberB =20;
int numebrC =30;
//然后先比较其中的任意两个数,得出两个数的最大值
int numberTemp = (numberA > numberB) ? numberA : numberB;
//然后我们就会得出其中的最大值,并保存在 numberTemp 变量当中
//之后在用当前的最大值numberTemp变量去比较 还未参与到比较的变量
int numberMax = (numberTemp > numberC) ? numberTemp : numberC;
//最后我们直接进行输出numberMax,就知道了其中三个数的最大值
System.out.println("三个数中,最大数值的数是:" + numberMax);
//最后我们说 ++ 和 -- 运算符,以及运算符在前和在后的区别。
int number1 = 10;
System.out.println(number1++); //10
System.out.println(number1); //11
//观察结果,然后我们在把++换到前面
int number2 =10;
System.out.println(++number2); //11
System.out.println(number2); //11
//从中观察,我们便知道了 ++ 在前和在后的区别
//当 ++在变量后时,会在程序执行之后,才进行 ++ 这个动作,也就是在程序执行之后,才去计算。
//当 ++在变量前时,会在输出语句之前,进行 ++ 这个动作,也就是 同步程序执行时,一起执行。
//对于我总结的是否标准,是否可以这样理解,请大家浏览到博文的时候,在评论其进行讨论,我们一起学习,一起努力
//然后我们在换成 -- 的运算符,这次我不会注释上结果,请大家自行总结,
//然后以讲述给第三者的形式,输出在评论其,为我进行讲解
//--在后
int number3 = 10;
System.out.println(number3--);
System.out.println(number3);
//--在前
int number4 = 10;
System.out.println(--number4);
System.out.println(number4);
最后,我想跟大家聊一下几个话题:
讨论一下关于博文的重要性。
我写博文,只是为了记录和总结。记录是以讲述的形式,发到博文上。为什么是以讲述的形式,因为学习过程中,不能只是输入,输出的过程中,才知道自己哪里会,哪里不会,给别人都讲不清楚,说明什么?自己不会怎么讲?
倒不是为了去给别人讲清楚,想要学习的更牢靠,就要讲述一下,看看自己会不会,如果能获得大家的评论,得到跟大家辩论的机会,那对自己的成长是非常有帮助的。这是我对于博文重要性的 自己的看法。
那为什么还要记录啊?
花点时间,整理一下知识很好,为什么发到CSDN上?
CSDN ,我对它的了解很少,不知道他到底是博客还是网站,到底什么是博客我也不知道,我只知道,不管是工作当中,还是学习当中,它更像是一个工具,我不管遇到什么样的问题,都会到上面去查。
我使用它的次数,多过于百度的次数,我百度的过程,也是为了更好的CSDN上找到所碰到问题的答案。
那么记录在CSDN上,积累自己的知识,在工作中,还是在生活学习中,遇到了把所学知识遗忘的问题,也能以更快的时间百度到最精准的问题。
因为是自己的问题,自己的总结,以经发送到自己的账号上。当然最为知道问题是什么?答案在哪找!
最后一个话题,兔C残篇。
我之前刷到过一个蔡志忠先生的视频,蔡志忠先生说,学习要跟对的人学,才能学习到更多的知识。就像学习不能跟妈妈学,因为那是妈妈,这里没有贬低妈妈的意思,因为妈妈很伟大,那为什么还不跟伟大的妈妈学呢。因为我们现在要学的东西不是妈妈的伟大。如果我们应该学习的东西没有学到,而学了妈妈的伟大,那对我们幼小的年龄还不成熟的羽翼,反而是种伤害,我们做不到妈妈的伟大。
所以我在学习Java这件事上的态度是漫长的,极度认真的。因为我知道自己的终点,我很认同蔡志忠先生的观点。所以我学习,跟我自己认为对的人学,而我把学习过程中,碰到的精华,都记录在兔C残篇中,积少成多,让兔C残篇,变成完篇,也是把自己的残缺,变成完整的知识体系的过程。