The C programming language (second edition,KR) exercise(CHAPTER 2)
E x c e r c i s e 2 − 1 Excercise\quad 2-1 Excercise2−1:输出结果如图1和图2所示,这道练习题需要文章1和文章2的知识。
#include <stdio.h>
#include <limits.h>float getFloat(char sign, unsigned char exp, unsigned mantissa);
double getDouble(char sign, unsigned short exp, unsigned long long mantissa);int main(void)
{printf("sizeof(char)=%d\n",sizeof(char));printf("Signed char[%d to %d]\n", (~(((unsigned char)~0) >> 1)), (unsigned char)(((unsigned char)~0 >> 1)));printf("Unsigned char[0 to %u]\n", ((unsigned char)~0)); printf("sizeof(short)=%d\n",sizeof(short));printf("Signed short[%d to %d]\n", (~(((unsigned short)~0) >> 1)), (unsigned short)(((unsigned short)~0 >> 1)));printf("Unsigned short[0 to %u]\n", (unsigned short)((unsigned short)~0));printf("sizeof(int)=%d\n",sizeof(int));printf("Signed int[%d to %d]\n", (unsigned int)(~(((unsigned int)~0) >> 1)), (unsigned int)(((unsigned int)~0 >> 1)));printf("Unsigned int[0 to %u]\n", (unsigned int)((unsigned int)~0));printf("sizeof(long)=%d\n",sizeof(long));printf("Signed long[%ld to %ld]\n",(unsigned long)(~(((unsigned long)~0) >> 1)), (unsigned long)(((unsigned long)~0 >> 1)));printf("Unsigned long[0 to %lu]\n",(unsigned long)((unsigned long)~0));printf("sizeof(long long)=%d\n",sizeof(long long));printf("Signed long long[%lld to %lld]\n", (unsigned long long)(~(((unsigned long long)~0) >> 1)), (unsigned long long)(((unsigned long long)~0 >> 1)));printf("Unsigned long long[0 to %llu]\n", (unsigned long long)((unsigned long long)~0));printf("---------------------------------------------------------------\n");printf("Signed char[%d to %d]\n", SCHAR_MIN, SCHAR_MAX);printf("Unsigned char[0 to %u]\n", UCHAR_MAX); printf("---------------------------------------------------------------\n");printf("Signed short[%d to %d]\n", SHRT_MIN, SHRT_MAX);printf("Unsigned short[0 to %u]\n", USHRT_MAX);printf("---------------------------------------------------------------\n");printf("Signed int[%d to %d]\n", INT_MIN, INT_MAX);printf("Unsigned int[0 to %u]\n", UINT_MAX);printf("---------------------------------------------------------------\n");printf("Signed long[%ld to %ld]\n",LONG_MIN, LONG_MAX);printf("Unsigned long[0 to %lu]\n",ULONG_MAX);printf("---------------------------------------------------------------\n");printf("Signed long long[%lld to %lld]\n", LLONG_MIN, LLONG_MAX);printf("Unsigned long long[0 to %llu]\n", ULLONG_MAX);printf("---------------------------------------------------------------\n");printf("Positive Normalized Float[%g to %g]\n", getFloat(0, 0x01, 0x00000000), getFloat(0, 0xFE, 0x007FFFFF));printf("Negative Normalized Float[%g to %g]\n", getFloat(1, 0xFE, 0x007FFFFF), getFloat(1, 0x01, 0x00000000));printf("Positive De-Normalized Float[%g to %g]\n", getFloat(0, 0x00, 0x00000001), getFloat(0, 0x00, 0x007FFFFF));printf("Negative De-Normalized Float[%g to %g]\n", getFloat(1, 0x00, 0x007FFFFF), getFloat(1, 0x00, 0x00000001));printf("Positive De-Normalized Zero Float[%g]\n", getFloat(0, 0x00, 0x00000000));printf("Negative De-Normalized Zero Float[%g]\n", getFloat(1, 0x00, 0x00000000));printf("Positive Infinity Float[%g]\n", getFloat(0, 0xFF, 0x00000000));printf("Negative Infinity Float[%g]\n", getFloat(1, 0xFF, 0x00000000)); printf("Not A Number Float[%g]\n", getFloat(0, 0xFF, 0x00000010)); printf("Not A Number Float[%g]\n", getFloat(1, 0xFF, 0x00000001)); printf("Positive Normalized Double[%g to %g]\n", getDouble(0, 0x0001, 0x0000000000000000), getDouble(0, 0x07FE, 0x000FFFFFFFFFFFFF));printf("Negative Normalized Double[%g to %g]\n", getDouble(1, 0x07FE, 0x000FFFFFFFFFFFFF), getDouble(1, 0x0001, 0x0000000000000000));printf("Positive De-Normalized Double[%g to %g]\n", getDouble(0, 0x0000, 0x0000000000000001), getDouble(0, 0x0000, 0x000FFFFFFFFFFFFF));printf("Negative De-Normalized Double[%g to %g]\n", getDouble(1, 0x0000, 0x000FFFFFFFFFFFFF), getDouble(1, 0x0000, 0x0000000000000001));printf("Positive De-Normalized Zero Double[%g]\n", getDouble(0, 0x0000, 0x0000000000000000));printf("Negative De-Normalized Zero Double[%g]\n", getDouble(1, 0x0000, 0x0000000000000000));printf("Positive Infinity Double[%g]\n", getDouble(0, 0x07FF, 0x0000000000000000));printf("Negative Infinity Double[%g]\n", getDouble(1, 0x07FF, 0x0000000000000000)); printf("Not A Number Double[%g]\n", getDouble(0, 0x07FF, 0x0000000000000010)); printf("Not A Number Double[%g]\n", getDouble(1, 0x07FF, 0x0000000000000001)); return 0;
}float getFloat(char sign, unsigned char exp, unsigned mantissa)
{unsigned f = ((unsigned)(((unsigned)(sign != 0))) << 31) | ((unsigned)(((unsigned)exp) << 23)) | ((unsigned)(mantissa & 0x007FFFFF));return *((float *)&f);
}double getDouble(char sign, unsigned short exp, unsigned long long mantissa)
{unsigned long long d = ((unsigned long long)(((unsigned long long)(sign != 0)) << 63)) | ((unsigned long long)((unsigned long long)(exp & 0x07FF) << 52)) | ((unsigned long long)(mantissa & 0x000FFFFFFFFFFFFF));return *((double *)&d);
}


E x c e r c i s e 2 − 2 Excercise\quad 2-2 Excercise2−2:
#include <stdio.h>#define MAXLINE (1000)int getline(char s[], int lim);int main()
{int len; /* current line length */char line[MAXLINE]; /* current input line */while ((len = getline(line, MAXLINE)) > 0) {printf("%s",line);}return 0;
}/* getline: read a line s, return length */
int getline(char s[], int lim)
{int c, i;for (i = 0; i < lim-1; ++i){c = getchar(); if((c == '\n')){break;}else if((c== EOF)){break;} else{s[i] = c; }}if (c == '\n') {s[i] = c;++i;}s[i] = '\0';return i;
}
E x c e r c i s e 2 − 3 Excercise\quad 2-3 Excercise2−3:
#include <stdio.h>#define MAXLINE (1000)int getline(char s[], int lim);
int htoi(char s[]);int main()
{int result=0;int len; /* current line length */char line[MAXLINE]; /* current input line */while ((len = getline(line, MAXLINE)) > 0) {printf("%s\n",line);result=htoi(line);printf("result=%d\n",result); }return 0;
}int power(int ex)
{int i=0;int result=1; while(i<ex){result=result*16; i=i+1; }return result;
}int htoi(char s[])
{int i=0; int result=0; int prefix=0; int s_index=0;int e_index=0;while(s[i]!='\0'){if(((s[i]>='0')&&(s[i]<='9'))||((s[i]>='a')&&(s[i]<='f'))||((s[i]>='A')&&(s[i]<='F'))){}else{if(i==1){if(s[0]=='0'){if((s[1]=='x')||(s[1]=='X')){prefix=1;}else{printf("Hexadecimal string error\n");return -1; }}else{printf("Hexadecimal string error\n");return -1; }}else{printf("Hexadecimal string error\n");return -1;} }i=i+1; } s_index=i; if(s_index==0){printf("Hexadecimal string error\n");return -1;}if(s_index==1){if((s[i]>='0')&&(s[i]<='9')){return ((int)(s[i]-'0')); } if((s[i]>='a')&&(s[i]<='f')){return ((int)((s[i]-'a')+10)); }if((s[i]>='A')&&(s[i]<='F')){return ((int)((s[i]-'A')+10)); } } if(s_index==2){ if(prefix==1){printf("Hexadecimal string error\n");return -1; }else{for(i=0;i<s_index;i++){if((s[s_index-1-i]>='0')&&(s[s_index-1-i]<='9')){result=result + ((int)(s[s_index-1-i]-'0')) *power(i); } if((s[s_index-1-i]>='a')&&(s[s_index-1-i]<='f')){result=result + ((int)((s[s_index-1-i]-'a')+10)) *power(i); }if((s[s_index-1-i]>='A')&&(s[s_index-1-i]<='F')){result=result + ((int)((s[s_index-1-i]-'A')+10)) *power(i); } } } }if(s_index>2){ if(prefix==1){for(i=0;i<(s_index-2);i++){if((s[s_index-1-i]>='0')&&(s[s_index-1-i]<='9')){result=result + ((int)(s[s_index-1-i]-'0')) *power(i); } if((s[s_index-1-i]>='a')&&(s[s_index-1-i]<='f')){result=result + ((int)((s[s_index-1-i]-'a')+10)) *power(i); }if((s[s_index-1-i]>='A')&&(s[s_index-1-i]<='F')){result=result + ((int)((s[s_index-1-i]-'A')+10)) *power(i); } } } else{for(i=0;i<s_index;i++){if((s[s_index-1-i]>='0')&&(s[s_index-1-i]<='9')){result=result + ((int)(s[s_index-1-i]-'0')) *power(i); } if((s[s_index-1-i]>='a')&&(s[s_index-1-i]<='f')){result=result + ((int)((s[s_index-1-i]-'a')+10)) *power(i); }if((s[s_index-1-i]>='A')&&(s[s_index-1-i]<='F')){result=result + ((int)((s[s_index-1-i]-'A')+10)) *power(i); } } } }return result;
}/* getline: read a line s, return length */
int getline(char s[], int lim)
{int c, i;for (i = 0; i < lim-1; ++i){c = getchar(); if((c == '\n')){break;}else if((c== EOF)){break;} else{s[i] = c; }}if (c == '\n') {s[i] = c;++i;}s[i] = '\0';return i;
}
E x c e r c i s e 2 − 4 Excercise\quad 2-4 Excercise2−4:
#include <stdio.h>#define MAXLINE (1000)int getline(char s[], int lim);
void squeeze(char s1[],char s2[]);int main()
{int result=0;int len; /* current line length */char line[MAXLINE]; /* current input line */while ((len = getline(line, MAXLINE)) > 0) {printf("before:%s\n",line);squeeze(line,"aFEb");printf("after:%s\n",line); }return 0;
}int is_str_ch(char s[],char c)
{int i=0;char temp_c=0; int result=0; while((temp_c=s[i++])!='\0'){ if(temp_c==c){result=1;break; } }return result;
}void squeeze(char s1[],char s2[])
{int i,j;for(i=j=0;s1[i]!='\0';i++){ if(!is_str_ch(s2,s1[i])){s1[j++]=s1[i]; } }s1[j]='\0';
}/* getline: read a line s, return length */
int getline(char s[], int lim)
{int c, i;for (i = 0; i < lim-1; ++i){c = getchar(); if((c == '\n')){break;}else if((c== EOF)){break;} else{s[i] = c; }}if (c == '\n') {s[i] = c;++i;}s[i] = '\0';return i;
}
E x c e r c i s e 2 − 5 Excercise\quad 2-5 Excercise2−5:
#include <stdio.h>#define MAXLINE (1000)int getline(char s[], int lim);
int any(char s1[],char s2[]);int main()
{int position=0;int len; /* current line length */char line[MAXLINE]; /* current input line */while ((len = getline(line, MAXLINE)) > 0) {position=any(line,"aFEb");printf("position=%d\n",position); }return 0;
}int any(char s1[],char s2[])
{int i,j;for(i=0;s1[i]!='\0';i++){ for(j=0;s2[j]!='\0';j++){if(s1[i]==s2[j]){return i; } } }return -1;
}/* getline: read a line s, return length */
int getline(char s[], int lim)
{int c, i;for (i = 0; i < lim-1; ++i){c = getchar(); if((c == '\n')){break;}else if((c== EOF)){break;} else{s[i] = c; }}if (c == '\n') {s[i] = c;++i;}s[i] = '\0';return i;
}
E x c e r c i s e 2 − 6 Excercise\quad 2-6 Excercise2−6:
#include <stdio.h>unsigned setbits(unsigned x,int p,int n,unsigned y);int main()
{unsigned x=0xFFFFFFDF;unsigned y=0xFFFFFFF2;unsigned p=0;p=setbits(x,5,2,y);printf("p=%08x\n",p); return 0;
}unsigned setbits(unsigned x,int p,int n,unsigned y)
{unsigned front=((~((unsigned)0))<<(p+1));unsigned back=~((~((unsigned)0))<<(p-n+1));unsigned all=front | back; x=x & all; y=(~((~0)<<n)) & y;y=y<<(p-n+1);x=x | y;return x;
}
E x c e r c i s e 2 − 7 Excercise\quad 2-7 Excercise2−7:
#include <stdio.h>unsigned invert(unsigned x,int p,int n);int main()
{unsigned x=0xFFFF55FF;unsigned inverted=0;inverted=invert(x,15,8);printf("inverted=%08x\n",inverted); return 0;
}unsigned invert(unsigned x,int p,int n)
{int i;unsigned temp1_x=x & (~((~((~((unsigned)0))<<n))<<(p-n+1)));unsigned temp2_x=0; unsigned index=1<<p;for(i=0;i<n;i++){if(!(index & x)){temp2_x|=index; } index=index>>1; }return (temp1_x) | (temp2_x);
}
E x c e r c i s e 2 − 8 Excercise\quad 2-8 Excercise2−8:
#include <stdio.h>unsigned rightrot(unsigned x,int n);int main()
{unsigned x=0xFFFFFF5A;unsigned rotated=0;rotated=rightrot(x,8);printf("rotated=%08x\n",rotated); return 0;
}unsigned rightrot(unsigned x,int n)
{unsigned temp1_x=x & (~((~((unsigned)0))<<n));temp1_x=temp1_x<<((sizeof(unsigned) * 8)-n);unsigned temp2_x=(x>>n) & ((~((unsigned)0)>>n)); return (temp1_x) | (temp2_x);
}
E x c e r c i s e 2 − 9 Excercise\quad 2-9 Excercise2−9:当 x x x为奇数的时候, x x x的二进制表示的最低位肯定为1,那么此时 x − 1 x-1 x−1的值二进制表示和 x x x的二进制表示基本一样,除了二进制表示的最低位为0,那么此时操作 x & = ( x − 1 ) x\&=(x-1) x&=(x−1)就会将 x x x的二进制表示的最低位清零,其它位保持不变。假设此时 x = 213 x=213 x=213,那么它的二进制表示为 11010101 11010101 11010101,此时 x − 1 x-1 x−1的值二进制表示为 11010100 11010100 11010100,那么此时操作 x & = ( x − 1 ) x\&=(x-1) x&=(x−1)之后 x x x的值为 11010100 11010100 11010100= x − 1 x-1 x−1。当 x x x为偶数的时候, x − 1 x-1 x−1会将 x x x的二进制表示的最右的比特值为1的比特位的值变成0,同时将 x x x的二进制表示的最右的比特值为1的比特位后面所有为0的比特位的值都变成1,因此总的来说操作 x & = ( x − 1 ) x\&=(x-1) x&=(x−1)会将 x x x的二进制表示的最右的比特值为1的比特位清零,其它位保持不变。假设此时 x = 208 x=208 x=208,那么它的二进制表示为 11010000 11010000 11010000,此时 x − 1 x-1 x−1的值二进制表示为 11001111 11001111 11001111,那么此时操作 x & = ( x − 1 ) x\&=(x-1) x&=(x−1)之后 x x x的值为 11000000 11000000 11000000。因此总结来说不论 x x x为奇数还是偶数,操作 x & = ( x − 1 ) x\&=(x-1) x&=(x−1)都会将 x x x的二进制表示的最右的比特值为1的比特位清零,因此可以利用这个现象来统计 x x x中比特位的值为1的比特位的个数。
#include <stdio.h>int bitcount(unsigned x);int main()
{unsigned x=0x84211234;unsigned num_of_1_bits=0;num_of_1_bits=bitcount(x);printf("num_of_1_bits=%d\n",num_of_1_bits); return 0;
}/* bitcount: count 1 bits in x */
int bitcount(unsigned x)
{int b;for (b = 0; x != 0; x &= (x-1))b++;return b;
}
E x c e r c i s e 2 − 10 Excercise\quad 2-10 Excercise2−10:
#include <stdio.h>char lower(char c);int main()
{char c='A';printf("lower(c)=%c\n",lower(c)); return 0;
}/* lower: convert c to lower case: ASCII only */
char lower(char c)
{return ((c>='A' && c<='Z') ? (c-'A'+'a'):c);
}
相关文章:

The C programming language (second edition,KR) exercise(CHAPTER 2)
E x c e r c i s e 2 − 1 Excercise\quad 2-1 Excercise2−1:输出结果如图1和图2所示,这道练习题需要文章1和文章2的知识。 #include <stdio.h> #include <limits.h>float getFloat(char sign, unsigned char exp, unsigned mantissa); do…...
rust实现循环链表
作为一个计算机技术专家,针对你的问题,我将首先解释如何使用Rust语言实现循环链表,并提供相应的代码示例。然后,我将解释一个可能的报错问题及其解决方法。 循环链表的实现 在Rust中实现循环链表,首先需要定义链表节…...

2. Spring的创建和Bean的存取
经过前面的学习我们已经大体明白了 IOC 思想以及它的实现方式 DI ,本节要讲的是如何Spring框架实现实现DI。 本节目标: Spring(Core) 项目创建将对象存储到 Spring 中将对象(bean)从 Spring 中取出 1. 创建 Spring 项目 与开篇演示的 Spring Boot 项目不…...

策略模式【行为模式C++】
1.概述 策略模式是一种行为设计模式, 它能让你定义一系列算法, 并将每种算法分别放入独立的类中, 以使算法的对象能够相互替换。 策略模式通常应用于需要多种算法进行操作的场景,如排序、搜索、数据压缩等。在这些情况下&#x…...
php中session相关知识(目前了解部分)
#记录学习知识 一.ini_set() 在PHP中,ini_set() 函数用于在脚本运行时设置指定的配置选项的值。这些配置选项可以是PHP的核心设置,例如文件上传的最大大小、脚本的最大执行时间、错误报告级别等。使用 ini_set() 可以临时改变PHP.ini文件中的设置&am…...
从零实现诗词GPT大模型:GPT是怎么生成内容的?
专栏规划: https://qibin.blog.csdn.net/article/details/137728228 再开始编写GPT之前,我们得对GPT是怎么生成内容的有一个大致的了解。目前的神经网络我们大多都可以看成是一个黑盒,即我们把数据输送给网络后,网络给我我们输出,我们可以不用关心这个黑盒里到底是怎么实现…...

8路HDMI+8路AV高清视频流媒体编码器JR-3218HD
产品简介: JR-3218HD高清音视频编码产品支持8路高清HDMI音视频采集功能,8路AV视频采集功能,8路3.5MM独独立音频接口采集功能。编码输出双码流H.264格式,音频MP3/AAC格式。编码码率可调,画面质量可控制。支持HTTP/RTSP…...

LangChain入门:14.LLMChain:最简单的链的使用
摘要 本文将介绍LangChain库中LLMChain工具的使用方法。LLMChain将提示模板、语言模型(LLM)和输出解析器整合在一起,形成一个连贯的处理链,简化了与语言模型的交互过程。我们将探讨LLMChain的技术特点、应用场景以及它解决的问题…...

深入理解k8s kube-proxy
1、概述 我觉得只要大家知道kube-proxy是用来配置网络规则的而不是转发流量的,真正的流量由iptables/ipvs来转发就可以了。 网络是k8s的一个关键部分。理解k8s中网络组件如何工作可以帮助更好的设计和配置我们的应用。 kube-proxy就是K8s网络的核心组件。它把我们…...

Spark-机器学习(1)什么是机器学习与MLlib算法库的认识
从这一系列开始,我会带着大家一起了解我们的机器学习,了解我们spark机器学习中的MLIib算法库,知道它大概的模型,熟悉并认识它。同时,本篇文章为个人spark免费专栏的系列文章,有兴趣的可以收藏关注一下&…...
java的正则表达式校验,包含了中国几乎所有运营商手机号码的校验格式
时间2024年4月14日22:25:00 代码 String PHONE_REGEX "^1([38][0-9]|4[579]|5[0-3,5-9]|6[6]|7[0135678]|9[89])\\d{8}$";解释 这个Java代码段定义了一个常量 PHONE_REGEX,它包含了一个正则表达式,用于匹配中国大陆的手机号码。下面是对这…...

C#简单工厂模式的实现
using System.Diagnostics.Metrics; using System.Runtime.InteropServices; using static 手写工厂模式.Program;namespace 手写工厂模式 {internal class Program{public interface eats {void eat();}//定义了一个接口public class rice : eats{public void eat() {Console.…...
.NET 设计模式—观察者模式(Observer Pattern)
简介 在.NET中,观察者模式是一种设计模式,它允许对象之间进行一对多的依赖关系。当一个对象的状态发生变化时,所有依赖于它的对象都会收到通知并自动更新。这种模式在事件驱动的设计中非常常见。 在.NET中实现观察者模式,通常涉…...

EasyUI Jquery 学习笔记 ——DataGrid(数据网格)与 Tree(树)详细版
1. DataGrid(数据网格)与 Tree(树) 1.1 Datagrid 数据网格 扩展自 $.fn.panel.defaults。通过 $.fn.datagrid.defaults 重写默认的 defaults。 数据网格(datagrid)以表格格式显示数据,并为选择、排序、分组和编辑数据提供了丰富的支持。数据网格(datagrid)的设计目…...
JAVA发票验真接口、票据ocr、数电票在线查验真伪
发票验真接口,,实时联网核验发票真伪,查验一致返回全票面信息,支持查验增值税发票管理系统开具的发票,支持批量核验发票,翔云发票查验送发票识别,助您摆脱手动输入繁琐,提升工作效率。 发票查验接口适用于银行、金融、代理记账等发票管理数量…...
el-date-picker调用回车事件
elementui的el-date-picker想要调用回车事件: <el-date-pickerv-model"state.date"type"date"value-format"YYYY-MM-DD HH:mm:ss"placeholder"选择日期"clearablekeydown.enter"handleDown"></el-date-…...

js学习总结
这里写目录标题 前情提要JavaScript书写位置1. 内部javaScript (不常用)2. 外部javaScript (常用)3.内联javaScript (常用) js中的输入和输出输出语法1. document.write()2. alert()3. console.log() 输入语法prompt() 前情提要 1. 在javaScript中的 分号 是可以省略的JavaScr…...

MES实施优势有哪些?MES制造执行系统的主要内容
各个行业之间也开始进入到了激烈的竞争当中,很多企业为了能够有效提升企业竞争力,都会通过提升自身实力的方式来提升竞争力。一些制造业也会在经营过程当中使用到MES系统,那么,mes系统的优势有哪些呢? 1、优化企业现场…...

ChatGPT 和 Elasticsearch:使用 Elastic 数据创建自定义 GPT
作者:Sandra Gonzales ChatGPT Plus 订阅者现在有机会创建他们自己的定制版 ChatGPT,称为 GPT,这替代了之前博客文章中讨论的插件。基于本系列的第一部分的基础 —— 我们深入探讨了在 Elastic Cloud 中设置 Elasticsearch 数据和创建向量嵌…...

废品回收 小程序+APP
用户实名认证、回收员实名认证、后台审核、会员管理、回收员管理、订单管理、提现管理、地图、档案管理。 支持,安卓APP、苹果APP、小程序 流程: 一、用户端下单,地图选择上门位置、填写具体位置、废品名称、预估重量、选择是企业废旧、家…...

cf2117E
原题链接:https://codeforces.com/contest/2117/problem/E 题目背景: 给定两个数组a,b,可以执行多次以下操作:选择 i (1 < i < n - 1),并设置 或,也可以在执行上述操作前执行一次删除任意 和 。求…...

04-初识css
一、css样式引入 1.1.内部样式 <div style"width: 100px;"></div>1.2.外部样式 1.2.1.外部样式1 <style>.aa {width: 100px;} </style> <div class"aa"></div>1.2.2.外部样式2 <!-- rel内表面引入的是style样…...
Matlab | matlab常用命令总结
常用命令 一、 基础操作与环境二、 矩阵与数组操作(核心)三、 绘图与可视化四、 编程与控制流五、 符号计算 (Symbolic Math Toolbox)六、 文件与数据 I/O七、 常用函数类别重要提示这是一份 MATLAB 常用命令和功能的总结,涵盖了基础操作、矩阵运算、绘图、编程和文件处理等…...

【论文阅读28】-CNN-BiLSTM-Attention-(2024)
本文把滑坡位移序列拆开、筛优质因子,再用 CNN-BiLSTM-Attention 来动态预测每个子序列,最后重构出总位移,预测效果超越传统模型。 文章目录 1 引言2 方法2.1 位移时间序列加性模型2.2 变分模态分解 (VMD) 具体步骤2.3.1 样本熵(S…...

企业如何增强终端安全?
在数字化转型加速的今天,企业的业务运行越来越依赖于终端设备。从员工的笔记本电脑、智能手机,到工厂里的物联网设备、智能传感器,这些终端构成了企业与外部世界连接的 “神经末梢”。然而,随着远程办公的常态化和设备接入的爆炸式…...

佰力博科技与您探讨热释电测量的几种方法
热释电的测量主要涉及热释电系数的测定,这是表征热释电材料性能的重要参数。热释电系数的测量方法主要包括静态法、动态法和积分电荷法。其中,积分电荷法最为常用,其原理是通过测量在电容器上积累的热释电电荷,从而确定热释电系数…...

VM虚拟机网络配置(ubuntu24桥接模式):配置静态IP
编辑-虚拟网络编辑器-更改设置 选择桥接模式,然后找到相应的网卡(可以查看自己本机的网络连接) windows连接的网络点击查看属性 编辑虚拟机设置更改网络配置,选择刚才配置的桥接模式 静态ip设置: 我用的ubuntu24桌…...
A2A JS SDK 完整教程:快速入门指南
目录 什么是 A2A JS SDK?A2A JS 安装与设置A2A JS 核心概念创建你的第一个 A2A JS 代理A2A JS 服务端开发A2A JS 客户端使用A2A JS 高级特性A2A JS 最佳实践A2A JS 故障排除 什么是 A2A JS SDK? A2A JS SDK 是一个专为 JavaScript/TypeScript 开发者设计的强大库ÿ…...
【Nginx】使用 Nginx+Lua 实现基于 IP 的访问频率限制
使用 NginxLua 实现基于 IP 的访问频率限制 在高并发场景下,限制某个 IP 的访问频率是非常重要的,可以有效防止恶意攻击或错误配置导致的服务宕机。以下是一个详细的实现方案,使用 Nginx 和 Lua 脚本结合 Redis 来实现基于 IP 的访问频率限制…...
tomcat入门
1 tomcat 是什么 apache开发的web服务器可以为java web程序提供运行环境tomcat是一款高效,稳定,易于使用的web服务器tomcathttp服务器Servlet服务器 2 tomcat 目录介绍 -bin #存放tomcat的脚本 -conf #存放tomcat的配置文件 ---catalina.policy #to…...