首页 > 其他分享 >【学习归纳自我总结版】尚硅谷学习第二天

【学习归纳自我总结版】尚硅谷学习第二天

时间:2024-09-12 15:53:29浏览次数:11  
标签:运算符 存储 字节 归纳 二进制 补码 学习 硅谷 原码

数据存储和运算符

1.进制

1.1进制的分类
十进制二进制八进制十六进制
数字范围0-90-10-70-9,a-f
进位规则逢十进一逢二进一逢八进一逢十六进一
示例12501111757F
说明每三位二进制是一位八进制值每四位二进制是一位十六进制值
1.2在代码中如何表示四种进制的常量值
  1. 十进制:正常表示
  2. 二进制:0b或0B开头
  3. 八进制:0开头
  4. 十六进制:0x或0X开头

2.计算机存储单位

  • **字节(Byte):**是计算机信息技术用于计量存储容量的一种计量单位,一字节等于八位。
  • **位(bit):**是数据存储的最小单位,也就是二进制。二进制数系统中,每个0或1就是一个位,叫做bit(比特),其中8bit就称为一个字节(Byte)。
  • 转换关系
    8 bit = 1 Byte
    1024 Byte = 1KB
    1024 KB = 1MB
    1024 MB = 1GB
    1024 GB = 1TB
  • float:单精度浮点型,占内存:4个字节,精度:科学计数法的小数点后6~7位。
  • double:双精度浮点型,占内存:8个字节,精度:科学计数法的小数点后15~16位。

3.计算机如何表示数据

3.1原码、反码、补码与符号位概念

计算机数据的存储使用二进制补码形式存储,并且最高位是符号位,最高位1是负数,最高位是0为正数。
规定:

  • 正数的补码与反码、原码一样,称为三码合一;
  • 负数的补码与反码、原码不一样;
  • 负数的原码:把十进制转为二进制,然后最高位设置为1
  • 负数的反码:在原码的基础上,最高位不变,其余位取反
  • 负数的补码:反码+1
3.2如何表示小数?
  • 为什么float(4个字节)比long(8个字节)的存储范围大?
  • 为什么float和double不精确?
  • 为什么double(8个字节)比float(4个字节)精度范围大?
    因为float、double底层也是二进制,先把小数转为二进制,然后把二进制表示为科学计数法,然后只保存:①符号位②指数位(需要移位)③尾数位
  • 浮点数的二进制
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
    float类型小数:8.25
    8.25的二进制:1000.01
    1000.01转为科学计数法:1.00001*2的3次,小数点往左移动3位
    符号位0,指数位3+127(偏移量)=130转为二进制为10000010,尾数00001,低位补0。
  • 0 10000010 00001000000000000000000 原码
  • 0 10000010 00001000000000000000000 反码
  • 0 10000010 00001000000000000000000 补码
3.3一个字符到底占几个字节?

在JVM中,一个字符占2个字节,Java使用Unicode字符集来表示每一个字符,即每一个字符对应一个唯一的Unicode编码值。char类型的数值参与算术运算或比较大小时,都是用编码值进行计算的。
在文件中保存或网络中传输时文本数据时,和环境编码有关。如果环境编码选择ISO8859-1(又名Latin),那么一个字符占一个字节;如果环境编码选择GBK,那么一个字符占1个或2个字节;如果环境编码选择UTF-8,那么一个字符占1-4个字节。

4.基本数据类型转换

4.1自动类型转换(隐式类型转换)

自动转换:将取值范围小的类型自动提升为取值范围大的类型。
转换规则

  • 当把存储范围小的值(常量值、变量的值、表达式计算的结果值)赋值给存储范围大的变量时。
  • 当存储范围小的数据类型与存储范围大的数据类型一起混合运算时,会按照其中最大的类型运算。
  • 当byte、short、char数据类型进行算术运算时,按照int类型处理。
4.2强制类型转换(显式类型转换)

强制类型转换:将取值范围大的类型强制转换成取值范围小的类型。
比较而言,自动转换是Java自动执行的,而强制转换是需要我们自己手动执行。
转换格式

数据类型 变量名  = (数据类型)被强转数据值

转换规则

  • 当把存储范围大的值(常量值,变量的值,表达式计算的结果值)赋值给了存储范围小的变量时,需要强制类型转换,提示:有风险,可能会损失精度或溢出
  • 当把某个值想要提升数据类型时,也可以使用强制类型转换
4.3逻辑运算符

逻辑运算符:用来连接两个布尔类型值的运算符(!除外),运算结果也是boolean值true或者false。
注意:&&和&的区别,||和|区别

  • &&和&的区别:&&有短路效果,左边为false,右边不执行;&左边无论是什么,右边都会执行。
  • ||和|的区别:||有短路效果,左边为true,右边不执行;|左边无论是什么,右边都会执行。
4.4位运算符
位运算符符号解释
&按位与,当两位相同为1时才返回1
|按位或,只要有一位为1即可返回1
~按位非,将操作数的每个位(包括符号位)全部取反
^按位异或。当两位相同时返回0,不同时返回1
<<左移运算符
>>右移运算符
>>>无符号右移运算符
  • 位运算符的运算过程都是基于补码运算,但是看结果,我们得换成原码,再换成十进制看结果。
  • 从二进制到十进制都是基于原码。
  • 正数的原码反码补码都一样,负数原码反码补码不一样
  • byte,short,char在计算时按照int类型处理
    如何区分&,|,^是逻辑运算符还是位运算符?
    如果操作数是boolean类型,就是逻辑运算符,如果操作数是正数,那么就是位运算符。
4.4.1左移<<
  • 运算规则:左移几位就相当于乘以2的几次方
  • 注意:当左移的位数n超过该数据类型的总位数时,相当于左移(n-总位数)位
4.4.2右移>>
  • 快速运算:类似于除以2的n次,如果不能整除,向下取整。
4.4.3无符号右移>>>
  • 运算规则:往右移动后,左边空出来的位直接补0,不看符号位
  • 正数:和右移一样.
  • 负数:右边移出去几位,左边补几个0,结果变为正数.
4.4.4运算符优先级

口诀:
单目运算排第一;
乘除余二加减三;
移位四,关系五;
等和不等排第六;
位与,异或和位或;短路与和短路或;
依次从七到十一;
条件排在第十二;
赋值一定是最后.

标签:运算符,存储,字节,归纳,二进制,补码,学习,硅谷,原码
From: https://blog.csdn.net/weixin_62636680/article/details/142173906

相关文章

  • elasticsearch学习笔记整理(含下面总结的面试题)
    elasticsearch是一个全文检索的搜索引擎Elasticsearch是一个基于Lucene的搜索服务器ES可以做全文检索、模糊查询(搜索)、数据分析(提供分析语法,例如聚合)。es是不能使用root用户进行启动的,要新创建一个用户才行创建用户:useraddqianfeng设置密码:passwdqianfeng早期es的结构......
  • MySQL学习笔记(三)InnoDB索引
    索引概念        索引在关系型数据库中,是一种单独的、物理的对数据库表中的一列或者多列值进行排序的一种存储结构,它是某个表中一列或者若干列值的集合,还有指向表中物理标识这些值的数据页的逻辑指针清单。        索引的作用相当于图书的目录,可以根据目......
  • 机器学习 - 课程笔记
    线性回归代价函数J,也被称为平方误差函数,用来描述假设函数值与真实值的误差大小。其中乘1/2是用于减少平均误差,并且后面求导会有一个2,可以消掉。线性回归的代价函数常用平方误差函数。假设函数的参数是x,代价函数的参数是θ。梯度下降法要得到最小化代价函数的Θ0和Θ1参数,在......
  • Java学习路线:从零基础到高级开发者的完整指南
    初学者入门指南1.环境搭建安装JDK:下载并安装最新版本的JDK(JavaDevelopmentKit)。配置环境:设置JAVA_HOME环境变量,并将bin目录添加到PATH中。选择IDE:使用Eclipse、IntelliJIDEA或其他任何你喜欢的Java集成开发环境。2.Java基础知识HelloWorld:编写你的第一个Java......
  • 0基础女生可以学习网络安全吗?
    众所周知,网络安全是一个不断增长和发展的领域,随着科技的进步和数字化时代的到来,对网络安全专业人才的需求也在不断增加。但在大家的认知中,IT行业大多不适合女生,因此很多小姐姐会纠结要不要学网络安全,那么0基础女生学网络安全合适吗?具体请看下文。0基础女生学习网络安全是......
  • 学习Linux时需要用到哪些软件?
    不管是Linux入门学习还是已经从事Linux相关工作的人,都需要学习和掌握一些Linux开发工具和软件,它们可以给我们带来诸多帮助。而Linux中,可使用的工具和软件繁多,那么学Linux需要安装哪些软件?我们来看看具体内容介绍。学习Linux并不需要特定的软件安装,但以下是一些在学习和使......
  • 深度学习|模型训练:手写 SimpleNet
    文章目录引言SimpleNet网络结构激活函数损失函数梯度计算SimpleNet类权重参数模型推理损失计算梯度计算SimpleNet概览模型训练数据准备训练过程结语引言从前文「深度学习|梯度下降法:误差最小化的权重参数」,我们知道了神经网络的学习就是“找寻使损失函数的值尽......
  • 机器学习特征-学习篇
    一、特征概念1.什么是特征特征是事物可供识别的特殊的征象或标志在机器学习中,特征是用来描述样本的属性或观测值的变量。它们可以是任何类型的数据,包括数字、文本、图像、音频等。作用:特征是训练和评估机器学习模型的基础。好的特征选择和提取能够显著提高模型的性能......
  • 学习资料获取&技术交流&面试辅导&大厂内推【看我下方文章底部名片】
    先自我介绍一下,小编浙江大学毕业,去过华为、字节跳动等大厂,目前在阿里深知大多数程序员,想要提升技能,往往是自己摸索成长,但自己不成体系的自学效果低效又漫长,而且极易碰到天花板技术停滞不前!因此收集整理了一份全套学习资料,初衷也很简单,就是希望能够帮助到想自学提升又不知......
  • Java学习路线:详细指引
    Java学习路线可以分为几个阶段,每个阶段都有其重点和推荐学习的内容。下面我将按照初学者、进阶和高级三个阶段来举例说明:初学者阶段目标:熟悉Java基础语法理解面向对象编程掌握基本数据类型和数据结构学会使用IDE(如IntelliJIDEA或Eclipse)学习内容:Java基础语法:包括变量、......