
算法
guanjianhe
这个作者很懒,什么都没留下…
展开
-
用整数表示小数
在嵌入式开发过程中,为了在显示端显示小数、负数等非uint类型数值,往往采用将数据放大10倍、100倍等,今天看到另一种方法,特此记录这个方法的核心公式是y = kx+my:显示值,最终在显示屏上可见的值x:传输值,和显示屏通讯时传输的数值,一定是uint数据类型k:分辨率,该值确定了每个取值的步进m:取值偏移量或增量,通过m值将y值偏移到满足x值为uint数据类型的要求,m值默认等于Y...原创 2019-12-01 11:01:49 · 1318 阅读 · 0 评论 -
pid通俗解释
链接在此翻译版原创 2019-10-03 21:16:30 · 1245 阅读 · 0 评论 -
十进制转为任意位数的二进制
void func( unsigned int num, unsigned int nbit, char *str ){ unsigned int i; unsigned int j = 0; for ( i = nbit - 1; i >= 0; i-- ) { str[j++] = '0' + ( (num >> i) & 1); }}原创 2018-11-14 23:26:58 · 1748 阅读 · 0 评论 -
检测回文数
int reverse(int n){ int reversed = 0; while(n>0) { reversed = 10 * reversed + n % 10; n /= 10; } return reversed;}int isPalindrome(int n){ return (n == reverse(n));}原创 2018-09-21 22:17:22 · 325 阅读 · 0 评论 -
& ~(sizeof(int) - 1) )详解
问题INTSIZEOF 宏,获取类型占用的空间长度,最小占用长度为int的整数倍:#define INTSIZEOF(n) ( (sizeof(n) + sizeof(int) - 1) & ~(sizeof(int) - 1) )引子问题1: 假设有要把一批货物放到集装箱里,货物有12件,一个箱子最多能装6件货物,求箱子的数目。解答:显然我们需要12÷6=212\div6=...原创 2018-09-25 21:44:08 · 2641 阅读 · 0 评论 -
选择排序法
/* 选择排序法 */#include <stdio.h>void selectionsort(int A[],int N){ int i,j,t,minj; for(i=0;i<N-1;i++) { minj=i; for(j=i+1;j<N;j++) { if(A[...原创 2018-08-23 16:59:38 · 804 阅读 · 0 评论 -
插入排序法
/* 插入排序法 *//* 1. 将开头元素视作已排序 2. 执行下述处理,直至未排序部分消失 1. 取出未排序部分的开头元素赋给变量v 2. 在已排序部分,将所有比v大的元素向后移动一个单位 3. 将已取出的元素v插入空位*/ #include <stdio.h>void insertionsort(int A[],int N){ ...原创 2018-08-23 16:37:20 · 163 阅读 · 0 评论 -
冒泡排序法
/* 冒泡排序法 */#include <stdio.h>void bubblesort(int A[],int N){ char flag=1; int i,j; int temp; for(i=0;flag;i++) { flag=0; for(j=N-1;j>=i+1;j--) ...原创 2018-08-23 16:22:11 · 507 阅读 · 0 评论 -
十进制与BCD码转换的算法
手头上在做的项目需要用到ds1302实时时钟,ds1302读出来的数据是BCD码,需要转换,写入也是。BCD码BCD是指用二进制来表示十进制数的编码,即用4位二进制来表示一位十进制数,因此4位二进制数表示最大的十进制数9(1001),只取十六个数中的十个数。比如: BCD码:0x99(153),该BCD码转换成十进制是99.算法原理十进制是逢十进一,而十六进制是逢...原创 2018-08-06 13:13:47 · 43244 阅读 · 9 评论 -
桶排序
先看例子:/* 桶排序 */#include <stdio.h>#define N 10void sort(int arr[],int n){ int temp[N+1]={0}; int i,j; for(i=0;i<n;i++) { temp[arr[i]]++; } j=0; for(...原创 2018-08-22 21:34:52 · 175 阅读 · 0 评论