- 博客(27)
- 收藏
- 关注
原创 MIPS指令集(一)基本操作
这种指令格式在某些场景可能不适用,如lw指令需要传入偏移量,5位是不够用的,这时,想要增加位数,但是MIPS的设计是,所有指令的长度都相同,这样,就会采取折中方案:所有指令长度相同,但不同类型指令采用不同指令格式。机器指令分为多个字段,本例第一个和最后一个告诉MIPS计算机要执行加法操作,第二个和第三个表示源操作数寄存器,第四个字段表示存放结果的寄存器,第五个字段没有用到,故置为0。(add immediate),常数操作数出现频率高,像这种带立即数的指令,比从存储器种取值快很多,能耗也较低。
2024-12-17 22:36:04 895
原创 C++入门篇(5)——类和对象(2)
如果一个类一个成员都没有,那么这个类就是空类。但空类并非什么都没有,编译器会对任何一个类都生成六个默认成员函数。
2024-02-15 12:57:07 546 8
原创 C++入门篇(4)—— 类与对象(1)
class className //指定想要的类的名字// 类体:由成员函数和成员变量组成// 一定要注意后面的分号这 就是类的定义方式。类体中内容称为类的成员:类中的变量称为类的属性或成员变量;类中的函数称为类的方法或者成员函数。类中的函数有两种定义方式1.直接在类中定义函数,但需要注意,这样编译器可能将该函数视为内联函数。2.类中函数声明,在类外定义函数。在类外定义函数需要注意成员函数名前加上类名。int _year;int _month;int _day;
2024-02-10 20:12:33 2599 6
原创 C++入门篇(3)auto关键字、内联函数、nullptr关键字
这种情况下一行中的变量必须是同一个类型,否则会报错。注意:auto使用时必须初始化,因为编译器需要根据初始化的数据类型确定出auto的实际类型。
2024-02-06 12:31:15 950 7
原创 C++入门篇(1)命名空间、输入输出函数、缺省参数
若有函数声明,则缺省参数只能出现在函数声明中,不能出现在函数定义中。必须像这样,不能声明定义都出现缺省参数,只能有声明出现缺省参数。
2024-02-02 22:59:12 470 4
原创 控制台简易程序——贪吃蛇
在控制台中实现一个简易的贪吃蛇小程序,蛇体可用●代替,作为边界的墙体用□表示,食物用★表示。最终效果如下同时实现蛇的移动,吃食物的反馈,以及游戏结束条件判断。
2024-01-31 22:14:45 2839 4
原创 结构体基础回顾
结构是⼀些值的集合,这些值称为成员变量。结构的每个成员可以是不同类型的变量。这个结构体的类型就是struct stu,要用该结构体声明变量时,要使用struct stu声明。要访问结构体中的成员,需使用'.'操作符或者这么写。
2023-12-04 14:28:53 402 1
原创 C语言内存函数
该函数作用类似于strcpy,函数声明如下从source地址拷贝num个字节的数据到destination地址处,这个函数强大之处在于不限制数据类型,可以是整型,浮点型,也可以是结构体。用法如上。结果是但是这个库函数,在C语言该函数是处理两块内存空间没有重合的情况,也就是说像这种用法尽量避免。但是也许在你的编译器上他是可以正常运行,这个可能是因为你所使用的编译器对其进行了优化。
2023-11-30 22:19:12 50
原创 指针知识点归纳
cpu如果想要访问某一块内存空间,就需要让cpu知道这是哪一块内存空间,由此需要对内存进行编址,将内存划分为一段段的小空间。指针变量就是接收这种地址编号的变量。cpu和内存之间传递数据,可以理解为用“线”来传递。简单理解,32位机器有32根地址总线,每根线表达“电脉冲有无”也就是0,1。因此32位机器上给内存编号,最多有32个bit位,也就是4字节。同理64位机器上编号最多为64字节。所以在32位机器上,指针变量大小为4字节,64位机器上,指针变量大小为8字节。
2023-11-25 16:04:35 109 4
原创 能排序任意数据类型数组的冒泡排序的实现
C语言中有一个库函数qsort,可以实现对任意类型数组进行排序,其函数声明如下其中base是数组首元素地址,num是无符号整型,意为数组元素个数,size是数组元素中每个元素的大小,单位为字节,而最后一个是一个函数指针,指向的函数会告诉计算机比较两元素的方法,比如比较两个结构体的大小,不能直接想1<2那样简单的直接比较,可以根据结构体中的元素进行比较,比如这个结构体,可以比较age得出两个结构体之间的大小关系,也可以比较name字符串得出二者大小关系。
2023-11-24 12:33:39 66 1
原创 C语言统计整型数组中每个元素出现次数
给定一个整型数组,可以先将其排序再用一个两列的二维数组存放每个数以及出现的次数。count数组中确实存放了1以及1出现的次数。
2023-11-23 12:14:55 1135
原创 一道很离谱的坑题
事实上,这道题的情况非常特殊,因为i的地址恰好与arr[0]的地址相差12,而其他很多情况下,i与arr[11]之间会有空隙,这样都无法造成死循环的结果。而这种巧合的出现,是依赖于VS2022、X86、Debug这种特定的环境。可以看到bug的产生是多么无孔不入,但凡换个环境,都不会死循环。
2023-11-12 21:56:04 92 3
原创 如何输入带空格的字符串
C语言中可以用%s格式来输入字符串,但是他却不能输入带空格的字符串,一旦scanf读入到了空格,就会停止读入,像这样。这样就能输入带空格的字符串,只不过我们的这个字符串结尾是空格不是反斜杠零。虽然输入了ad 21,但是读到空格就结束了。可以用下面的代码解决。
2023-11-12 21:01:44 443
原创 写个简易控制台阉割版扫雷游戏
接下来问题是如何统计一个位置周围雷的个数,一种方法可以是,遍历这个位置周围的元素,若为'1',则加1,这种方法还需要判断这个位置是否在边界,比较麻烦。我们知道'1'-'0'==1,'2'-'0'==2,字符1减字符0等于数字1,那么我们只用计算'0'周围'1'数量就可以了,将选择的位置周围元素全部相加再减去7*'0',就得到了周围的雷数。接下来会在里面随机的生成若干个雷,并且需要统计某个'*'周围的雷个数。这样的'0','1'棋盘与'*'棋盘中的'*'一一对应,可以得出每个'*'周围的雷数。
2023-11-01 21:24:14 82 1
原创 C语言分支循环语句
这段代码想表达的是c不等于+,-,*,/中的任何一个时就是取余运算,但是,最后效果并非如此,else会与离else最近且未匹配的if匹配,所以这题输入不是'/'就会走else。后跟一条语句即可,需要注意的是,if后只有一条语句会生效,如果要使多个语句生效,需要使用{}将语句括起来。有一点要注意,当有多个if语句并列时,else会与离else最近且未匹配的if匹配,比如。if(表达式)表达式结果为真就执行下面的语句,为假则不执行,0为假,非0为真。就像这样,c被赋值了'w',但也输出了余数。
2023-10-25 14:36:24 97 2
原创 unsigned char可以匹配的占位符
unsigned char的大小为一个字节,想让它输入或输出一个整型可以使用%hhu,%hhu的大小是一个字节。
2023-10-18 16:30:41 172 1
原创 辗转相除法
两个数a,b,用a除以b,再把b赋给a,余数赋给b,重复直至余数为0,则此时除数就是两个数的最大公因数,代码如下。辗转相除法可以用来计算两个数的最大公因数。
2023-10-12 20:30:45 71
原创 编程小白自述
身为一个新生,对IT可以说毫无了解,但是学校里大部分竞赛都需要C语言,并且我认为也需要学C语言.目前学C语言是为了能参加一些竞赛,还暂时没有找工作的想法。要学好的话,每天都得敲代码吧,还要学好基础语法吧,会在这个账号上传一些C语言知识点笔记或一些学习心得。这篇博客就是写给自己看的吧(
2023-10-12 16:02:25 101
原创 按位与判读数字补码中1的个数
给定一个十进制数,将其与1按位与,若结果的末位为1则说明原十进制数末位必为1.再用移位操作符将十进制数的上一位变成末位,循环进行。
2023-09-30 20:22:27 47
原创 移位操作符
11111111111111111111111111111111,这个补码就是结果,将其转化为原码即可达到答案。原码为10000000000000000000000000000001,即为-1.对于这段代码,先写出a的原码,int类型占32bit,a为负数则首位为1。>>补码右移相应位数,右边丢弃,左边补上原符号为即可。反码(首位符号位,其他位按位取反)再将补码右移一位,首位为符号位。
2023-09-30 19:15:48 52
原创 按位运算符
整数以补码形式存储。正数原码,反码,补码相同。(首位均为符号位,1为负数,0为正数)a与b按位异或后得到的值,只要再与a或b中的任意一个运算就能得到另一个。原码最左边符号位不变,其他位按位取反,得到反码,反码加一得到补码。利用按位异或,可以不定义临时变量的交换两个变量的值。|按位或,有一个为真即为真,都为0才为0。&按位与,同为真才为真,否则为0.^按位异或,相同则取0,不同则为1。这些运算值适用于整数(正负皆可)。
2023-09-30 18:47:47 51
原创 输入一个正整数n,打印出一个n行菱形或上三角或下三角图案
在真正写的时候我自己容易纠结每个变量的职能,导致犹豫半天,或许这时先把能写的随便找个字母替代,在接着写会比较好吧(取好变量名真重要)。把行数n看作常数,再用某个变量去遍历每一行,在每一行中使用另一个变量去打印每一行的内容。或许捋清各个变量的关系会略微麻烦。先定义三个变量n,j,i,n作为总行数,j可以遍历每一行,然后用i去逐一打印每一行的空格和字符。显然要用循环,那么如何使用呢?
2023-09-27 22:08:11 2724 2
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人