【计算机科学概论】硬件层
硬件层硬件层从构成计算机的硬件角度研究计算机如何如何使用电信号来表示和操作二进制值
门和电路
电信号
电平
[[门(gate)|门(gate)]]:对电信号执行基本运算的设备,介绍一个或多个输入信号,生产一个输出信号
门的分类
门的构造
[[电路(circuit)]]:相互关联的门组合,用于实现特定的逻辑函数
[[布尔代数(Boolean algebra)]]
计算部件–[[计算机科学概论原书第5版.pdf#page=95|计算机科学概论第5章]]
[[计算机硬件]]
[[计算机科学概论原书第5版.pdf#page=99|计算机科学概论【5.2存储程序的概念】]]
冯诺依曼体系结构![[Pasted image 20240807224846.png]]
存储单元
算数逻辑单元(Arithmetic/Logic Uint , ALU): 执行算数运算(加减乘除)和逻辑运算(俩个值的比较)的计算机部件
[[寄存器(register)]]:CPU中的小块存储区域,用于存储中间值或特殊数据
输入单元
输出单元
✨控制单元(control unit) ...
【计算机科学概论】信息层
信息层信息层介绍计算机科学中如何理解和处理信息,通过数字化的方法将现实的模拟信号转化为数字信号.以二进制的形式记录
数字
数的分类
自然数: 从1开始的正整数(1, 2, 3, …)。有时也包括0(0, 1, 2, 3, …)。
整数: 包括所有自然数、它们的负数以及0(… -3, -2, -1, 0, 1, 2, 3, …)。
有理数: 可以表示为两个整数之比的数(a/b,其中a和b都是整数且b≠0)。所有整数都是有理数,因为它们可以表示为自身与1的比(如5可以表示为5/1)。
实数: 包括所有有理数和无理数。无理数是不能表示为两个整数之比的数(如√2, π)。
复数: 包括实数和虚数。形式为a + bi,其中a和b是实数,i是虚数单位,满足i² = -1。
基数(base)
二进制计数系统
进制转换
数据表示法
数据(data): 基本值或事实
模拟数据(analog data): 用连续形式表示的信息
数字数据(digital data): 用离散形式表示的信息
信息(infomation): 用有效的方式组织或处理过的数据
...
ios原生开发初体验
ios原生开发初体验🍎前言机缘巧合之下参加了“移动应用创新赛”,借此机会被迫主动接触ios应用的开发相关方面的知识与技术,也因此有了这篇文章,来记录下我的感受。从开始学习到这篇文章开始撰写,约一周时间,估摸着每天断断续续敲三四个小时左右,自认为收获颇丰。
MacOS操作系统本打算直接谈Swift的,但不得不先提一嘴Mac,想要搞apple相关应用的开发就离不开要有台Mac(虚拟机除外)。我觉得这一步就难倒许多大学生了,显然目前国内的绝大多数大学生的操作系统是Windows。本人平时也是用习惯了Windows,一时间上手Mac真是哪哪都别扭,在这就折腾了好一会。
Swift语言我一上来就直接跟着apple官网的开发者教程走的,基础语法就嫖了眼菜鸟教程的目录,就按照官网教程直接开始敲代码了
语法糖讲讲我喜欢的几个语法糖(不全),就一些语法看和python很像
换行:直接用换行来分割代码行,省去了敲;的步骤,必须点赞。我认为分号的意义在软件开发中就是为了恶心人,一行代码写完直接回车既能分割代码有能保持可读性,何乐而不为呢,没必要多此一举以;结尾。
类型推断:这让定义变量时又可以少敲一点 ...
HTML学习
HTML基础学习记录前言知识是互通的嘛,个人粗浅的感觉就是Android中xml和markdown的杂交(这么说可能是有点倒反天罡了,但毕竟本人接触前两者更早)入门倒是挺快的,也感觉没啥好系统写的。
学习资料HTML 入门 - 学习 Web 开发 |MDN的 — Getting started with HTML - Learn web development | MDN (mozilla.org)
HTML 教程 | 菜鸟教程 (runoob.com)
denysdovhan/learnyouhtml: Learn you how to create your first web page (github.com)👈英文好的可以试试这个,边学边练
什么是HTMLHTML(HyperText Markup Language,超文本标记语言)是一种用于创建网页的标准标记语言。它被用来描述网页的结构和内容。HTML使用标记标签(tags)来定义不同的元素,如标题、段落、链接、图片等。每个标签都以尖括号(< 和 >)包围,并通常成对出现,一个开始标签和一个结束标签。
...
Git本地与远程
Git本地与远程前言虽然用了github好久了,也学过一遍git但在项目实操的时候还是遇到好多问题,于是痛定思痛写下这篇文章结合实践中暴露出的毛病来重新学习学习Git,问题主要集中在远程仓库方面。
美化下git工欲善其事必先利其器,磨刀不误砍柴工,配置下branch相关的颜色,更好康些,用起来也更舒服😁
git中输入
1$ git config --global --edit
在里面加上这个👇
12345[color "branch"] current = yellow reverse local = green bold remote = cyan ul
:wq保存退出后,看下效果吧
1$ git branch -v
这样就把当前分支设置为好看的黄色,远端分支设置成青色,当地分支设为绿色o( ̄▽ ̄)d
你也可以按自己喜好来配置
以下是如何在 Git 配置文件中应用这些样式的示例:
1234567[color "branch"] current = yellow bold loc ...
设计模式DesignPattern【2】--FactoryMethod
Factory Method学习资料
✨CSDN-Java设计模式之创建型:工厂模式详解(简单工厂+工厂方法+抽象工厂)
掘金-设计模式-工厂模式(简单工厂、工厂方法、抽象工厂) - 掘金 (juejin.cn)](https://juejin.cn/post/7163177142577004558?searchId=202406011121230B6B30CF8DEB2B7469FB))
Factory Method (refactoring.guru))
kamranahmedse/design-patterns-for-humans: An ultra-simplified explanation to design patterns (github.com)
工厂模式 | 菜鸟教程 (runoob.com)
简单工厂工厂方法工厂方法模式将工厂抽象化,并定义一个创建对象的接口。每增加新产品,只需增加该产品以及对应的具体实现工厂类,由具体工厂类决定要实例化的产品是哪个,将对象的创建与实例化延迟到子类,这样工厂的设计就符合“开闭原则”了,扩展时不必去修改原来的代码。
在 ...
设计模式DesignPatterns
学习资源
[菜鸟](设计模式简介 | 菜鸟教程 (runoob.com))
[维基百科](软件设计模式 - 维基百科,自由的百科全书 — Software design pattern - Wikipedia)
⭐[**Refactoring.Guru**](常用设计模式有哪些? (refactoringguru.cn))
[**github**](kamranahmedse/design-patterns-for-humans: An ultra-simplified explanation to design patterns (github.com))
学习笔记If all you have is a hammer, everything looks like a nail.如果你只有一把锤子,那么一切看起来都像钉子。
这是我看到的对于学习设计模式利弊的最好评语
学习设计模式的好处在于给于我们启示,以一种更加系统结构化的眼光看待问题,并在某种程度上有利于规避潜在问题的出现,但在另一反面一味的套用设计模式也僵化我们的思维,导致遇到什么问题都想机械的套用模板,哪怕是特别简 ...
java语法回眸
java复习java特点一些有关Java的专业术语
JDK(Java Development Kit ):编写Java程序的程序员使用的软件
JRE(Java Runtime Environment):运行Java程序的用户使用的软件
Server JRE (Java SE Runtime Environment):服务端使用的 Java 运行环境
SDK(Software Development Kit):软件开发工具包,在Java中用于描述1998年~2006年之间的JDK
DAO(Data Access Object):数据访问接口,数据访问,顾名思义就是与数据库打交道
MVC(Model View Controller):模型(model)-视图(view)-控制器(controller)的缩写,一种软件设计典范,用于组织代码用一种业务逻辑和数据显示分离的方法
OOP(object-oriented programming):面向对象程序设计
Java对所有参数都是按值传递的
修饰符访问修饰符
default (即默认,什么也不写): 在同一包内可见,不使用任何修饰符。使用 ...
Git基础
Git前置知识需要会点linux和shell才能方便进行一些基本操作
linux
ls(英文全拼:list files): 列出目录及文件名
cd(英文全拼:change directory):切换目录
pwd(英文全拼:print work directory):显示目前的目录
mkdir(英文全拼:make directory):创建一个新的目录
rmdir(英文全拼:remove directory):删除一个空的目录
cp(英文全拼:copy file): 复制文件或目录
rm(英文全拼:remove): 删除文件或目录
mv(英文全拼:move file): 移动文件与目录,或修改文件与目录的名称
shell
i – 切换到输入模式,在光标当前位置开始输入文本。
x – 删除当前光标所在处的字符。
: – 切换到底线命令模式,以在最底一行输入命令。
a – 进入插入模式,在光标下一个位置开始输入文本。
o:在当前行的下方插入一个新行,并进入插入模式。
O – 在当前行的上方插入一个新行,并进入插入模式。
dd – 剪切当前行。
yy – 复制当前行。
p(小写) – 粘 ...
ROS
ROSRos是什么模块化、分布式
ROS: An Open-Source Robot Operating System
机器人界的Android
Ubuntu 入门中英文切换 shift win+space
系统文件
连接网络 右上角
终端程序 CTRL+L+T
ls list 罗列清单
mkdir make directory 创建新的目录
cd change directory 进入目录
cd .. 回到上级目录
cd~ 回到主文件夹
Tap 自动补全指令或目录
gedit 编辑 文本编辑器类似txt
source 执行文件
终端启动脚本 .bashrc
sudo 管理员执行
github资源下载scripts 目录用于放置脚本文件(安装依赖包等低频率的操作)和python程序
资源寻找
Index.ros上搜索
GitHub上搜索
资源下载cd catkin_ws/src/ 进入src文件
git clone https….. 下载资源到src上
cd ~/catkin_ws/ 进入catkin_ws目录
...