- 博客(37)
- 收藏
- 关注
原创 代码实现超过long长度的数字乘法运算[Java代码]
写完之后百度了一下我哭了,因为这种方法Java官方Api就可以实现,而且使用很方便很强大……Q:为什么要写这个?A:昨天晚上失眠,睡不着忽然想到这个问题,然后思考了一下写法,今天下午摸鱼写了出来。注:使用Java的BigInteger类可以实现大数字的处理运算,具体可以参考这篇博客博客地址我的思路是这样的,一个乘法运算可以分解为多次的加法运算来进行处理,比如:5 * 3 = 5...
2018-10-29 17:27:39
5017
原创 离散数据求均值(数学期望)的算法及Java代码
十分不想写笔记……但是在网上找了一圈没找到这个算法的代码实现,便自己手写了一份放到网上供网友使用,有问题的话欢迎提出。前言:为什么要用离散数据求均值?很多时候使用平均数,把大量数据累加起来再除以数据的个数并不能真实的反应数据的情况,比如一组稳定80左右的数据,因为其中有几个20的数据,导致求到的平均值就会和真实的情况相差一些。而离散数据的均值是求出的数据的平均状况,数据值得平均水平。这...
2018-03-20 10:11:59
12093
2
原创 android studio 使用JNI调用C程序
安装配置NDK下载http://developer.android.com/intl/zh-cn/ndk/downloads/index.html#download下载后运行exe程序会在当前目录下解压缩出来NDK的所有文件,移到本地的目录下。配置环境变量打开windows系统,属性,环境变量,定义下面两个部分:前者为NDK文件放置的目录,后者为:%NDK_ROOT%;注意分号。验证cmd里面输入n
2017-10-23 13:34:39
767
原创 Git版本控制命令
设置当前用户和邮箱git config --global user.name "DaGe"git config --global user.email "cici@gmail.com"可以通过去掉后面的用户名和邮箱查看是否设置成功创建代码仓库在当前工程的目录下 git init当前目录下出现.git/文件夹,如果想删除本地仓库可以直接删除掉这个文件夹。 提交本地代码首先添加文件文件git
2017-08-28 16:30:01
328
原创 安卓四大组件之广播
广播的类型标准广播 完全异步执行的广播,所有的广播接收器几乎同时收到该条广播消息,这样广播的效率较高,但是无法被截断有序广播 同步执行的广播,同一时刻只能有一个广播接收器收到该消息,当广播接收器处理完成后才会继续传递信息,其中有着优先级的关系,优先级高的先收到广播消息,并且可以被截断。系统广播通过接收系统广播,可以得到当前系统的状态信息。比如来短信、电话、电量过低等情况。广播注册接收静态
2017-08-28 16:29:24
264
原创 安卓UI学习笔记
layout布局中的组件通用android:layout_width=”wrap_content”android:layout_height=”wrap_content”android:text=”Hello”android:textSize=”25dp”android:textColor=”@color/red”字体颜色 #FF0000也可以直接android:background=
2017-08-28 16:28:46
333
原创 安卓四大组件之activity笔记
活动activity启动时的默认活动界面在活动中编写了MainActivity后,需要再AndroidManifest.xnl文件中对其进行设置为启动后的默认活动进程,设置属性如下。 <activity android:name=".MainActivity"> <intent-filter> <action android:name="android.i
2017-08-25 10:14:46
301
原创 安卓应用层与底层驱动之间的调用
APP应用程序->应用框架层->硬件抽象层-> 硬件驱动程序一、硬件驱动层进入kernel/drivers文件夹中,创建一文件夹,放入驱动程序。包括头文件,C文件,Makefile,Kconfig。同时对drivers下的Makefile跟Kconfig进行相应的添加,这样配置编译选项后,即可编译。编译完后,可以在/dev,/proc,/sys/class中得到相应的文件,其中dev下的文件即为该设
2017-08-25 10:13:28
5686
原创 vim编辑器的一些其他用法
删除列1.光标定位到要操作的地方。 2.CTRL+v 进入“可视 块”模式,选取这一列操作多少行。 3.d 删除。插入列插入操作的话知识稍有区别。例如我们在每一行前都插入”() “: 1.光标定位到要操作的地方。 2.CTRL+v 进入“可视 块”模式,选取这一列操作多少行。 3.SHIFT+i(I) 输入要插入的内容。 4.ESC 按两次,会在每行的选定的区域出现插入的内容。一些特色功
2017-08-22 17:18:21
295
原创 Ubuntu的一些shell命令
压缩与解压.tar解包:tar xvf FileName.tar打包:tar cvf FileName.tar DirName(注:tar是打包,不是压缩!)---------------------------------------------.gz解压1:gunzip FileName.gz解压2:gzip -d FileName.gz压缩:gzip FileName.tar
2017-08-22 17:17:15
1040
原创 Linux - PWM的驱动编写
比如要用到pwm1,那么首先要保证这个pwm1并没有被别的驱动程序占用。 比如在驱动的设备树里面:backlight {compatible = "pwm-backlight";pwms = <&pwm1 0 25000>;……}可以看到里面把pwm1已经占用掉了,那么除了可以把相应的驱动程序设置为不编译以外,也可以直接把这个设备树里面的标识屏蔽掉,那么在加载驱动时在设备树里面没有找到对应
2017-08-22 17:15:31
10963
1
原创 printk的级别
用户空间有printf(),内核空间有printk(),编写用户空间应用程序的时候,一般都用printk()。 printk()与printf()的一个重要区别就是前者可以指定消息的打印级别,内核根据这个指定的级别来决定是否将消息打印到终端上。如下表所示,printk()共有8个级别。 级别 描述KERN_EMERG 紧急情况,系统可能会崩溃KERN_ALERT 必须立即响应KERN
2017-08-22 17:14:05
1503
1
原创 opendir相关的目录操作
头文件 #include<sys/types.h> #include<dirent.h>函数原型 DIR* opendir (const char * path );功能 打开一个目录,在失败的时候返回一个空的指针。#include <stdio.h> #include <dirent.h> int main(void) { DIR *dirptr = NULL
2017-08-22 17:13:45
1278
4
原创 Kconfig文件
tristate "test counter1"默认不编译default n help this is for pulse counter test.config TEST_counter2 tristate “test counter2”默认编译进内核default y help this is for pulse counter test.config TEST_
2017-08-22 17:12:20
304
原创 FILE文件指针相关操作
文件的打开模式 w 打开只写文件,若文件存在则文件长度清为0,即该文件内容会消失。若文件不存在则建立该文件。 w+ 打开可读写文件,若文件存在则文件长度清为零,即该文件内容会消失。若文件不存在则建立该文件。 wb 只写方式打开或新建一个二进制文件,只允许写数据。 wb+ 读写方式打开或建立一个二进制文件,允许读和写。 r 打开只读文件,该文件必须存在,否则报错。 r+ 打开可读写的文件,
2017-08-22 17:11:05
1156
原创 C语言的计时函数
#include <\time.h>最常用的无疑是time函数,用法如下: Int start,end; Start = time(NULL);//获得当前系统运行时间 //处理事件 End = time(NULL);//获得处理完事件后系统运行时间 Put(end-start);但是time函数用来计时并不是特别的精确,只是精确到s级的计时单位,所以在一些需要精确计时的程序中,可以使用
2017-08-22 17:10:21
7506
原创 Android实现编译模块
m: 编译所有的模块 mm: 编译当前目录下的模块,当前目录下要有Android.mk文件 mmm:编译指定路径下的模块,指定路径下要有Android.mk文件 要想使用这些命令,首先需要在android源码根目录执行. build/envsetup.sh 脚本设置环境重新生成sysem.img使用make snod,重新生成system.imgusera@usera-de
2017-08-22 17:08:29
723
原创 adb下载程序时提示权限问题
Adb push … … 前者为本机目录下的某个文件,后者为开发板的某个目录但是有时候会提示faild to capy …… Permission denied. 这时候可以先对要拷贝的目录进行chmod 777 目录来加权限 如果仍旧不行,可以使用以下命令:”mount -o rw,remount 目录” 来实现加载权限
2017-08-22 17:07:54
563
转载 STM32单片机上电后时钟的默认配置过程
文章系转载,写的很好。写作原由:今日接手用stm32f100xx芯片开发的项目,以前用的是stm8s 和stm32f103xx芯片;因为在别人的项目代码的基础上做2次开发,但是发现那个代码main函数中没有对系统时钟的设置的相关函数,一直纳闷,但也没有深究,直至昨日 调试时出现串口收发数据出错,源代码在原项目的板子上串口发送、接收数据正常,同样程序在项目板子上收发的数据不正确, 两块板子芯片一样,串
2017-03-23 17:15:52
7677
转载 关于ARM伪指令
最近在写STM32芯片的程序,关于真正的底层接触的不多。 很懊恼。 如果写程序只是关心用到的寄存器怎么设置,程序算法的逻辑的话,我觉得还不够,所以下面看了一下关于STM32的工程的第一步执行的文件: 汇编程序:startup_stm32f10x_hd.s //名字可能不是都相同 在这个程序中,执行的是在main函数以前需要初始化的一些东西,比如说:堆栈的分配,中断对应的中断处理函数名称,中断
2017-03-23 09:08:26
5854
原创 STM32 -- 笔记一 -- CLK、GPIO、PWM
时钟时钟源:HSI、HSE、LSI、LSE、PLL 时钟频率都不一样。 为什么要多个时钟源? A:STM32拥有者丰富的外设,这些外设需要的时钟频率不一定都要有系统时钟那么高,像是看门狗,只需要几十k的时钟频率即可。并且,同一个电路,时钟越快功耗越大,同时,抗电磁干扰能力也会越弱。系统时钟SYSCLK的分频:通过AHB分频器分频以后送给各模块使用模块包括总线,内核,内存,DMA等
2017-03-09 10:30:31
8893
原创 STM32采集AD电压
Tip1:为什么不用DMA传输来进行节约功耗,降低采样速率,提高效率?A:使用DMA传输,那么流程为: 1. ADC初始化,DMA初始化,TIM2初始化 其中:TIM2作为ADC的中断源 2. 当发生一次定时器的中断时,进入AD转换,在DMA的初始化时与ADC-DR寄存器进行绑定,在该寄存器获得数据时,直接通过DMA通道将该寄存器的数据保存在给定的数组里面,把缓存数组装满后,会触发一次DM
2017-03-08 15:50:52
45784
4
转载 STM32深入浅出(转载笔记)
看到了一份关于STM32学习的笔记,写的很好,但是特别的长,所以先把这份资料保存下来,以后慢慢看。STM32学前班教程之一:为什么是它经过几天的学习,基本掌握了STM32的调试环境和一些基本知识。想拿出来与大家共享,笨教程本着最大限度简化删减STM32入门的过程的思想,会把我的整个入门前的工作推荐给大家。就算是给网上的众多教程、笔记的一种补充吧,所以叫学前班教程。其中涉及产品一律隐去来源和品牌,以防
2017-03-08 15:46:56
4387
原创 UNIX系统编程复习笔记 一
2016.12.5 DAGEa.操作系统: 是管理计算机硬件与软件资源的计算机程序。操作系统的功能包括管理计算机系统的硬件、软件及数据资源,控制程序的运行,改善人机界面,为其他的应用软件提供支持,是计算机的系统资源最大限度的发挥作用等。操作系统管理者计算机硬件资源,同时按照应用程序的资源需求,进行分配资源。资源管理,程序控制,人机交互。处理器管理、存储器管理、文件关系、设备管理。*b.
2016-12-05 22:32:56
343
转载 读书笔记 · Accelerated C++ 一
前言:因为单独看书的话,比如一些函数类的东西都记不住,并且看完一些重点也常常忘记,所以写一下笔记,方便以后查阅。 C++因为之前没有什么经验,所以现在看的书是《Accelerated C++》这本,这本书算是C++入门的书籍了,讲的东西都是比较基础的内容。希望这本书阅读完了以后能对C++有所入门,到时候可以看一些进阶的书籍。2016.11.24 DAGEa.基本的格式#include <iost
2016-11-25 10:39:01
294
转载 C语言深度剖析笔记(七)
2016.9.7 DAGE学习内容:C语言深度剖析笔记(七)a.内存管理1.栈、堆、静态区:静态区:保存自动全局变量和 static 变量(包括 static 全局和局部变量)。静态区的内容在总个程序的生命周期内都存在,由编译器在编译的时候分配。栈:保存局部变量。栈上的内容只在函数的范围内存在,当函数运行结束,这些内容也会自动被销毁。其特点是效率高,但空间大小有限。堆:由 malloc 系列
2016-10-26 10:42:21
335
转载 C语言深度剖析笔记(六)
2016.9.6 DAGEC语言深度剖析笔记(六)a.指针数组与数组指针1.定义: 首先要注意[]的优先级要高于*,所以下面 int *p[4]; int (*p)[4]; 可以看做上面的先定义了一个数组,但是数组里面存放的是一些指针,并且数组里面可以存放除了函数以外的任意类型的数据 下面的因为()的原因所以先定义了一个指针,但是这个指针指向
2016-10-26 10:40:31
760
转载 c语言深度剖析笔记5
2016.8.27 DAGE复习内容:c语言深度剖析笔记5a.指针&数组 1.int *p = NULL; //表示把这个指针置为0,NULL在C语言里面被宏定义为0,不是指针指向的内容*p为0,而是这个地址p为0 int p = (int )0x123456; //如果要修改某个地址的内容,将这个地址赋值给一个指针时要强制转换类型,也可以 (int )0
2016-10-21 11:17:02
339
转载 c语言深度剖析笔记4
2016.8.26 DAGE复习内容:c深度剖析笔记4a.优先级方面需要注意的几个小的点 1. “.”的优先级高于* []高于* == 和!=高于位操作 位操作即&和|和^,~ == 和!=高于赋值符 算术运算符高于位移运算符 逗号运算符在所有运算符中优先级最低 b.预处理
2016-10-21 11:16:44
262
转载 c语言深度解剖笔记3
2016.8.16 DAGE复习内容:c深度解剖笔记3a.符号 1.注释 注释部分编译器会将其剔除掉,但是不是直接剔除,而是替换成空格代替注释 注释里面也可以使用续行符\比如使用//来注释时一行不够 /**/类型的注释不能嵌套 /*之间要是没有空格,那么就会默认是注释部分的开始,所以a/*b,原意a除以地址b里面的
2016-10-21 11:16:18
280
转载 c语言深度解剖笔记2
2016.8.15 DAGE复习内容:c语言深度解剖笔记2a.union联合体 union 维护足够的空间来置放多个数据成员中的“一种”,而不是为每一个数据成员配置空间,在 union 中所有的数据成员共用一个空间, 同一时间只能储存其中一个数据成员,所有的数据成员具有相同的起始地址。一个 union 只配置一个足够大的空间以来容纳最大长度的数据成员。b.大端与小端模式
2016-10-21 11:15:53
336
转载 c语言深度解剖笔记1
2016.8.14 DAGE复习内容:c语言深度解剖笔记1a.c语言运算符的优先级 有三大类:算术运算符、关系运算符与逻辑运算符,还有位运算符等,,, 相同优先级运算符,从左至右依次运算。注意后缀运算优先级高于前缀。因此++i++应解释为++(i++)。 基本表达式 1级 最高 后缀表达式 2极 单目/一元运算 3级
2016-10-21 11:15:23
367
转载 函数指针、指针函数类
函数指针例: type (*func)(type &,type &) 该语句声明了一个指针func,它指向了一个函数,这个函数带有了2个type型参数并返回一个type的值。 p.s. type类型可以被看成是int啊或者是floast等类型。 =============注意项==============1.一个指向函数的指针必须确保该函数被定义且分配了内存,否则它将指向一个空地址
2016-09-28 20:50:38
689
转载 排序算法总结
代码实现冒泡排序 O(n^2)冒泡排序算法的运作如下: 比较相邻的元素。如果第一个比第二个大,就交换他们两个。 对每一对相邻元素作同样的工作,从开始第一对到结尾的最后一对。在这一点,最后的元素应该会是最大的数。 针对所有的元素重复以上的步骤,除了最后一个。 持续每次对越来越少的元素重复上面的步骤,直到没有任何一对数字需要比较。void bublle_sort(int a[],int n){
2016-09-27 15:18:10
230
原创 static关键字详解
static可以用它来定义变量或者函数,保存在静态数据区。作用:1.隐藏:解除多文件时函数名字冲突的问题同时编译多个文件时,所有未加static前缀的全局变量和函数都具有全局可见性。其他源文件也可以访问(extern)。如果加了static,就会对其它源文件隐藏。利用这一特性可以在不同的文件中定义同名函数和同名变量,而不必担心命名冲突。Static可以用作函数和变量的前缀,对于函数来讲,stati
2016-09-27 14:55:38
279
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人