public static String reverse1(String str)
{
return new StringBuffer(str).reverse().toString()
}
2.最常用的方法:
public static String reverse3(String s)
{
char[] array = s.toCharArray()
String reverse = "" //注意这是空串,不是null
for (int i = array.length - 1 i >= 0 i--)
reverse += array[i]
return reverse
}
3.常用方法的变形:
public static String reverse2(String s)
{
int length = s.length()
String reverse = "" //注意这是空串,不是null
for (int i = 0 i < length i++)
reverse = s.charAt(i) + reverse//在字符串前面连接, 而非常见的后面
return reverse
}
4.C语言中常用的方法:
public static String reverse5(String orig)
{
char[] s = orig.toCharArray()
int n = s.length - 1
int halfLength = n / 2
for (int i = 0 i <= halfLength i++) {
char temp = s[i]
s[i] = s[n - i]
s[n - i] = temp
}
return new String(s) //知道 char数组和String相互转化
}
/******************************************************************//*晶振:11.0569MHz */
/************************* 说 明 *********************************/
/*以一个9ms的低电平和4.5ms的高电平为引导码,后跟32位二进制代码 */
/*前16位为8位用户码及其反码,后16位为8位的 *** 作码及其反码 */
/*以脉宽为0.565ms、间隔0.56ms、周期为1.125ms的组合表示"0";*/
/*以脉宽为0.565ms、间隔1.685ms、周期为2.25ms的组合表示"1"。*/
/*注意:接收码的脉宽与间隔是对发射码取反的,即间隔是0.565ms */
/******************************************************************/
#include <REGX52.h>
#define uchar unsigned char
uchar dataIRcode[4] //定义一个4字节的数组用来存储代码
uchar CodeTemp //编码字节缓存变量
uchar i,j,k //延时用的循环变量
sbit IRsignal=P3^2 //HS0038接收头OUT端直接连P3.2(INT0)
/**************************延时0.9ms子程序**********************/
void Delay0_9ms(void)
{uchar j,k
for(j=18j>0j--)
for(k=20k>0k--)
}
/***************************延时1ms子程序**********************/
void Delay1ms(void)
{uchar i,j
for(i=2i>0i--)
for(j=230j>0j--)
}
/***************************延时4.5ms子程序**********************/
void Delay4_5ms(void)
{uchar i,j
for(i=10i>0i--)
for(j=225j>0j--)
}
/**************************** 延时子程序 ************************/
void Delay(void)
{uchar i,j,k
for(i=200i>0i--)
for(j=200j>0j--)
for(k=3k>0k--)
}
/************************中断0解码服务子程序**********************/
void int0(void) interrupt 0 using 2
{
EA=0
for(k=0k<10k++)
{Delay0_9ms()
if (IRsignal==1) //如果0.9ms后IRsignal=1,说明不是引导码
{k=10break}
else if(k==9) //如果持续了10×0.9ms=9ms的低电平,说明是引导码
{while(IRsignal==0)
Delay4_5ms() //跳过持续4.5ms的高电平
for(i=0i<4i++) //分别读取4个字节
{for(j=1j<=8j++) //每个字节8个bit的判断
{ while(IRsignal==0) //等待上升沿
Delay0_9ms() //从上升沿那一时刻开始延时0.9ms,再判断IRsignal
if(IRsignal==1) //如果IRsignal是"1",则向右移入一位"1"
{Delay1ms()
CodeTemp=CodeTemp|0x80
if(j<8) CodeTemp=CodeTemp>>1
}
else
if(j<8)CodeTemp=CodeTemp>>1//如果IRsignal是"0",则向右移一位,自动补"0"
}
IRcode[i]=CodeTemp
CodeTemp=0
}
for(i=0i<4i++)//通过串口将代码发出
{
SBUF=IRcode[i]
while(!TI) //等待一个字节发送完毕
TI=0
}
Delay()
}
}
EA=1
}
/***********************串口初始化程序*********************/
void initUart(void)
{
TMOD|=0x20
SCON=0x50
PCON|=0x80
TH1=0xff//57600bps @ 11.0592MHz
TL1=0xff
TR1=1
}
/**************************主程序*************************/
void main()
{ initUart()
IT0=1 //INT0为负边沿触发, (1:负边沿触发,0:低电平触发)
EX0=1 //外部中断INT0开, (1:开, 0:关)
EA=1 //开所有中断
CodeTemp=0 //初始化红外编码字节缓存变量
Delay()
while(1)
}
关闭输出窗口
清楚命令区
没有source的代码不知道这句什么意思
载波频率1MHz
bit速率 1MHz(比较这两个速率,应该每一个bit上调制了一个载波)
设定噪声系数
产生数据bit
将数据bit上调制载波
在发射数据上加入高斯噪声
将接收到的信号解调
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)