MCS-51单片机的串行端口有4种基本工作方式,通过编程设置,可以使其工作在任一方式,以满足不同场合的需要。其中,方式0主要用于外接移位寄存器,以扩展单片机的I/O电路;工作方式1多用于双机之间或与外设电路的通信;方式2、3除有方式1的功能外,还可以作多机通信,以构成分布式多微机系统。 
串行端口有两个控制寄存器SCON、PCON,用于设置工作方式、发送或接收的状态、特征位、数据传送波特率[每秒...
                            
                            
                                分类:
其他好文   时间:
2015-01-27 18:35:01   
                                阅读次数:
258
                             
                    
                        
                            
                            
                                思路一:> 5;//取$int30位长度,每次右移5位,正好可以得到6个组 } $output[] = $out; } return $output;}$urls = shorturl('http://www.php100.com');echo "";var_dump($ur...
                            
                            
                                分类:
其他好文   时间:
2015-01-25 22:12:30   
                                阅读次数:
164
                             
                    
                        
                            
                            
                                题目:把一个含有N个元素的字符串右移K位,要求时间复杂度为O(N),且只允许使用两个附加变量。
例子:
字符串为:abcd1234,右移4位,结果变为:1234abcd
思路:
移动前跟移动后是有两段的顺序是不变的,所以可以把这两段看成两个整体
右移K位的过程就是把数组的两部分交换一下。
交换的过程:(1)逆序排列第一部分
(2)逆序排列第二部分
(3)再全部逆序!
...
                            
                            
                                分类:
编程语言   时间:
2015-01-25 18:16:08   
                                阅读次数:
210
                             
                    
                        
                            
                            
                                求二进制数中1的个数
    
     题目描述:对于一个字节1BYTE = 8 bits的无符号变量,求其二进制表示中1的个数,要求算法的执行效率尽可能高。
    题目分析:可以吧这个问题转化为判断这个数的最后1位数是否等于1,然后逐渐往右移位,不断判断下去,直到该数为零。
    按照这种分析,那么就有两部分需要做:
1)判断最后一位是否为零;
2)如果右移位。...
                            
                            
                                分类:
其他好文   时间:
2015-01-22 09:27:17   
                                阅读次数:
155
                             
                    
                        
                            
                            
                                C语言运算符及其优先级汇总表口诀 圆下箭头一顿号 非凡增减富强针地长 三乘除,四加减,五移位 千万别把鱼忘记,它在盛饭的厨子里 小灯大灯灯灯不等 爸喂鱼,舅疑惑,裸鸡也疑惑 十三姨,十四父,十五逗,兜到低 “圆下箭头一顿号”指的是第15级的运算符。其中圆指的是运算符(),下指的是下标运算符[],箭头...
                            
                            
                                分类:
编程语言   时间:
2015-01-20 20:14:36   
                                阅读次数:
154
                             
                    
                        
                            
                            
                                对于下面的表达式,运算结果应该是多少?
int result = 4 >> 1 + 1;
我不止一次地认为运算结果为4/2+1=3。而实际上,运算结果为:4/4=1。这是由于移位操作的优先级比加法运算低。
上图引自百度百科
上图引自百度百科...
                            
                            
                                分类:
编程语言   时间:
2015-01-19 22:47:58   
                                阅读次数:
220
                             
                    
                        
                            
                            
                                BCD码转换成二进制和ASCII码;用BCD码表示:十位上的十进制数为 2 == BCD码表示为 0010;个位上的十进制数9 === BCD码表示为 1001;所以总的来说 十进制数 29 用BCD码表示为:0010 1001;转换过程:把BCD码 0010(十进制数为十位上的 2)右移4位(其实表示当作一个个位数,或者说单纯的数值),然后乘以10 还原到十进制的权重(因为这个数本来表示的就是十进制数中的十位)。处理完十位上的数,接着处理个位上的数。因为BCD码的权重和二进制的前四位权重是一样(2^n,n...
                            
                            
                                分类:
其他好文   时间:
2015-01-17 18:06:29   
                                阅读次数:
722
                             
                    
                        
                            
                            
                                java中>>(>>)表示无符号移位如:int num = 22;二进制是0001 0110, num>>>1,右移一位变成0000 1011(11)int num = -22二进制用补码表示:1110 1001, num >>>1无符号右移一位: 0111 0100>>向右移动后,最左边用符号位替...
                            
                            
                                分类:
编程语言   时间:
2015-01-15 23:38:43   
                                阅读次数:
260
                             
                    
                        
                            
                            
                                Java 运算符的优先级(从高到低)优先级描述运算符1括号()、[]2正负号+、-3自增自减,非++、--、!4乘除,取余*、/、%5加减+、-6移位运算>、>>>7大小关系>、>=、>=、>>>=如果在程序中,要改变运算顺序,可以使用()。
                            
                            
                                分类:
编程语言   时间:
2015-01-14 19:57:01   
                                阅读次数:
228
                             
                    
                        
                            
                            
                                Java中用最有效率的方法算出2乘以8等於几?2<<3,因为将一个数左移n位,就相当于乘以了2的n次方,那么,一个数乘以8只要将其左移3位即可,而位运算cpu直接支持的,效率最高,所以,2乘以8等於几的最效率的方法是2<<3。
                            
                            
                                分类:
编程语言   时间:
2015-01-14 00:59:52   
                                阅读次数:
173