自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(83)
  • 收藏
  • 关注

原创 由汇编代码确定switch语句

x位于相对于寄存器%ebp偏移量为8的地方。.L8是分配地址的起始标号,与这个标号对应的地址会作为间接跳转(第5行)的基地址。在编译函数时,GCC为程序的初始部分以及跳转表生成了如下汇编代码。由JA .L2和.LONG .L2,知-1为缺省值。, 所以x的取值为-2、-1、0、1、2、3和4。标号.L6有2和3两个情况标号值。stictch2的跳转表。由1、2、3和4行,有。

2025-06-08 19:09:25 53

原创 计算矩阵A和B的乘积

根据矩阵乘法规则,编程计算矩阵的乘积。函数fix_prod_ele()是基本方法编写,函数fix_prod_opt()是优化方法编写。

2025-06-07 11:32:39 284

原创 设置存储器若干单元为相同的字节

用一个长整型数的低字节设置一段存储区域。

2025-06-05 11:40:00 201

原创 联合中嵌套结构

proc函数是要对一个链表进行操作,链表以联合作为元素。由编译器为proc的主体产生的汇编代码确定proc函数。

2025-06-04 09:31:43 135

原创 浮点数的位级表示转变为二进制表示

把x的浮点数的位级表示转变为二进制表示,并确定小数点的位置。

2025-06-03 11:06:33 130

原创 由反汇编代码确定结构体的完整声明

结合C程序中的代码与test函数的反汇编代码分析。下面是test函数的反汇编代码。C程序中遇到下面的代码。

2025-05-30 17:06:42 233

原创 长整型数y的低字节替换为x的第typenum字节

长整型数y的低字节替换为x的第typenum字节,y的其余字节不变。

2025-05-27 16:26:55 88

原创 从无符号长整型数中提取字节

从无符号长整型数x中提取4个字节,使用左右移位及减法实现。

2025-05-26 16:22:31 307

原创 由浮点数的位级表示判断大小关系

由浮点数x和y的位级表示,判断它们的大小关系,当 𝑥≥𝑦 时,返回1,否则,返回0。

2025-05-24 18:36:41 444

原创 判断C表达式是否成立

判断C表达式是否成立,成立返回1,否则,返回0。

2025-05-24 17:11:24 261

原创 整型数x与n位补码数的关系

当整型数x能用n位补码数表示时,返回1,否则返回0,n大于等于1小于等于16。

2025-05-22 11:41:15 119

原创 求无符号字符型数据乘积的高一半

两个无符号字符型数据x和y的乘积是unsigned int数据。程序通过unsigned_high_prod( )函数调用signed_high_prod( )实现。signed_high_prod( )函数把x和y作为带符号数,计算得到它们乘积的高一半(char)。

2025-05-21 16:45:36 453

原创 整型数相加的溢出

当正溢出时,返回TMax,负溢出时,返回TMin。这种运算常用在执行数字信号处理的程序中。

2025-05-20 18:14:42 125

原创 无符号长整型数x的循环右移

无符号长整型数x,循环右移位数n的取值范围是:x大于等于0且小于32。比如,x=0x12345678,n=4,则循环右移4位后,x=0x81234567。

2025-05-19 17:22:34 146

原创 长整型的位数及字节数

不用sizeof,编程确定长整型的位数及字节数。

2025-05-19 08:56:06 122

原创 用算术右移实现逻辑右移及用逻辑右移实现算术右移

函数srl()用算术右移实现逻辑右移,函数sra()用逻辑右移实现算术右移。

2025-05-18 20:00:40 205

原创 由浮点数x的位级表示求其整型值

由浮点数x的位级表示,得到浮点数的十进制表示,在超过32位整型数的表示范围时,返回0X80000000;在32位整型数的表示范围内时,返回强制转化为整型的值。舍入时采用向0舍入。

2025-05-17 11:21:43 232

原创 由浮点数x的位级表示求2x的位级表示及十进制表示

 对于浮点数x的位级表示,调用函数float_twice()得到2x的位级表示,调用函数ulint_float()分别得到它们的十进制表示。

2025-05-16 10:17:39 219

原创 用移位操作实现5*x/8

对于整型数x,要计算5*x/8,先计算5*x(考虑溢出),然后再右移三位实现除以8的操作,可以节省计算时间。

2025-05-15 11:12:15 170

原创 求由无穷串构成的二进制数的值

由无穷串构成的二进制数:0.yyy....,y是一个k位的序列。要求由无穷串构成的二进制数的十进制值Y,可由公式计算得到。

2025-05-13 18:05:34 256

原创 A/D-D/A转换器PCF8591

PCF8591具有模拟-数字转换器(ADC)和数字-模拟转换器(DAC)的功能。PCF8591先把电阻电压转换为数字量送给单片机,单片机再把该数字量送给PCF8591,转换为模拟量从引脚AOUT输出。电阻电压送LCD1602显示。

2025-04-13 08:45:00 146

原创 结构体变量的设置

有两个结构体,把其中一个结构体成员的和送给另一个结构体的成员。通过结构体指针引用这两个结构体的成员。把结构体s2的成员t和u的和值21送给结构体s1的成员y。

2025-04-07 10:00:57 139

原创 冒泡法排序

也可以采用条件传送来实现,把A[i]与A[i+1]比较,较小的数送给变量min,较大的数送给变量max,然后,把min送给A[i],把max送给A[i+1],当数据较多时,采用条件传送效率更高。采用冒泡法,先比较最开始的两个元素,按照从小到大的顺序排好,然后增加第3三个元素,再把这三个元素排好顺序,就这样,不断增加元素,最终实现所有的元素按照从小到大的顺序排列。if(dat[i+1]<dat[i]) //条件成立,交换比较数的位置。

2025-03-30 11:10:22 335

原创 利用结构体求矩形面积

矩形的宽和高作为结构体s的成员,而结构体s是结构体rec1的成员,结构体rec1中还有一个指针字段存放宽度变量的地址,这样,就有不同的方法得到矩形的面积。//存放结构体变量rec2地址。//指针sp保存结构体rec1的地址。//存放变量w的地址。

2025-03-29 10:46:25 217

原创 求矩阵某列的和

设计函数sum_column( int A[E1(n)][E2(n)], int j ),E1(n)和E2(n)分别为用宏定义的行数和列数,j为列号。在该函数中,设计指针ptr=&A[0][j],通过*ptr及ptr=ptr+E2(n)访问第j列元素,从而求得第j列元素的和。在主函数中定义该矩阵,指定所求和的列号j,然后调用函数sum_column( ),返回第j列元素的和。

2025-03-28 11:18:43 507

原创 计算向量的内积

通过指针引用两个向量的分量,通过引入寄存器变量,减少对存储器的访问来提高效率。resum=0x002B=43,符合要求。

2025-03-26 14:26:58 310

原创 求质点的质心

定义二维结构体数组grid[2][2],存放4个质点的x坐标和y坐标。以步长为1的引用模式求得所有质点x坐标的和,以及y坐标的和。利用右移操作求得质心的x坐标和y坐标。

2025-03-25 10:32:22 421

原创 三维数组求和

三维数组a[4][3][2],总共有个元素。这些元素在存储器中的存放顺序是:a[0][0][0]、a[0][0][1]、a[0][1][0]、a[0][1][1]、 a[3][2][0]、a[3][2][1]。对该数组求和时,按照存储顺序访问就能得到一个很好的步长为1的引用模式和良好的空间局部性,从而提高计算效率。三维数组的优先顺序:行、列、深度。

2025-03-22 10:15:45 344

原创 数组合并排序

两个有序数组A(长度为n)和B(长度为m),要合并为一个更大的有序数组C(长度为m+n)。让i1索引数组A,让i2索引数组B,让i3索引数组C,三个索引号初值均为0。情形1:当i1<n且i2<m时,A[i1]与B[i2]较小者赋予C[i3],发生传送数组的索引加1,再选A[i1]与B[i2]较小者赋予C[i3],直到条件不再满足(i1<n且i2<m不再成立)。情形2:若i1<n,把A[i1]赋予C[i3],直到i1不再小于n。情形3:若i2<m,把B[i2]赋予C[i3],直到i2不再小于m。

2025-03-20 16:57:25 191

原创 一般矩阵的转置

矩阵B,采用优化方法实现,对A矩阵,采用行指针*Arow访问同一行不同列元素,对矩阵B,采用列指针*Bptr访问相同列不同行元素。

2025-03-18 10:09:33 206

原创 矩阵的转置

对于的矩阵,使用两个指针变量,可以方便实现(i,j)处元素与(j,i)处元素交换位置。令指针Arow=&A[i][0],则Arow[j]可实现对第i行j列元素的访问。令指针Bptr=&A[0][i],则*Bptr就可以访问(0,i)处元素,然后,令Bptr+=M,就可访问同列不同行的元素。

2025-03-15 14:34:05 300

原创 加法运算强制类型转换

C51中,给做加法运算的操作数强制类型转换与把加法结果强制类型转换是一样的效果,等同于把字符型变量x和y相加的和赋值于整型变量。

2025-03-14 15:45:20 178

原创 联合中存储平方差

某联合中有两个结构体,一个结构体存放两个变量的值,另一个结构体中存放它们的平方差。得到平方差后,就不用再保存这两个变量。

2025-03-12 17:06:21 284

原创 类型转换规则

字符型变量转换为长整型变量,进行符号位扩展;长整型变为整型,截掉高一半,数据大小可能发生变化;无符号长整型变为无符号整型,也是截掉高一半,数据大小可能发生变化。

2025-03-11 10:50:29 249

原创 74LS148实现优先权管理

74LS148引脚GS接单片机引脚INT0,当有中断请求时,读取端口P2,查询优先权最高的中断源(闭合按键)的编号A2A1A0,并把编号在数码管上显示。不断查询,显示器显示的数字是优先权最高的中断源的编号。当P3.2引脚变为高电平,所有的中断请求都服务完毕,显示P,查询结束。

2025-03-09 19:29:02 970

原创 PWM信号调速直流电机

PWM信号的周期是1ms,占空比变化率5%,每3s更新1次占空比。初始占空比50%。

2025-03-07 17:56:27 238

原创 以实例解析汇编语言和高级语言

用汇编语言编程,可以使用目标计算机的所有指令,而高级语言程序没有这样的能力。汇编语言只能运行在指令系统相同的系列计算机上,而高级语言程序可以运行在各种不同的计算机上。对许多应用来说,这种软件的可移植性相当重要。通过实例说明,使用汇编源程序,能看到机器级的执行过程,对理解计算机的运行有帮助。使用C51隐藏了机器实现,使开发者侧重于问题的解决思路,开发效率高,可靠性更好,且易于推广和交流。

2025-03-03 15:55:59 427

原创 IEEE浮点表示解析

当s=0,e=255,即exp是8个1,而frac是23个0时,就表示正无穷;当s=1,e=255,即exp是8个1,而frac是23个0时,就表示负无穷。当该正整数的二进制表示为1后面跟24位,且最右边位为1,其余位均为0时,该数就不能被准确表示。e=255,即exp是8个1,而frac不全为0时,就表示NaN,指不是一个数。当exp=0时,是非规格化表示。,二进制表示为1.frac,1常常被舍掉。符号位s为0,表示这个数是正数,为1,表示这个数是负数。对于非规格化表示,E=1-Bias。

2025-03-03 11:24:22 275

原创 线反转法实现矩形键盘按键识别

由于行、列线为多键共用,各按键彼此将相互发 生影响,必须将行、列线信号配合起来并作适当的处理,才能确定闭合键的位置。线反转法第1步:列线输出为全低电平,则行线中电平由高变低 的所在行为按键所在行。第2步:行线输出为全低电平,则列线中电平由高变低 所在列为按键所在列。综合上述两步,可确定闭合按键所在行和列。

2025-03-01 21:40:30 604

原创 由浮点数位级表示求十进制表示

由单精度浮点(IEEE浮点)数的位级表示求其十进制表示。

2025-03-01 14:25:12 369

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除