自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(37)
  • 收藏
  • 关注

原创 代码实现超过long长度的数字乘法运算[Java代码]

写完之后百度了一下我哭了,因为这种方法Java官方Api就可以实现,而且使用很方便很强大……Q:为什么要写这个?A:昨天晚上失眠,睡不着忽然想到这个问题,然后思考了一下写法,今天下午摸鱼写了出来。注:使用Java的BigInteger类可以实现大数字的处理运算,具体可以参考这篇博客博客地址我的思路是这样的,一个乘法运算可以分解为多次的加法运算来进行处理,比如:5 * 3 = 5...

2018-10-29 17:27:39 4956 2

原创 离散数据求均值(数学期望)的算法及Java代码

十分不想写笔记……但是在网上找了一圈没找到这个算法的代码实现,便自己手写了一份放到网上供网友使用,有问题的话欢迎提出。前言:为什么要用离散数据求均值?很多时候使用平均数,把大量数据累加起来再除以数据的个数并不能真实的反应数据的情况,比如一组稳定80左右的数据,因为其中有几个20的数据,导致求到的平均值就会和真实的情况相差一些。而离散数据的均值是求出的数据的平均状况,数据值得平均水平。这...

2018-03-20 10:11:59 11785 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 706

原创 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 283

原创 安卓四大组件之广播

广播的类型标准广播 完全异步执行的广播,所有的广播接收器几乎同时收到该条广播消息,这样广播的效率较高,但是无法被截断有序广播 同步执行的广播,同一时刻只能有一个广播接收器收到该消息,当广播接收器处理完成后才会继续传递信息,其中有着优先级的关系,优先级高的先收到广播消息,并且可以被截断。系统广播通过接收系统广播,可以得到当前系统的状态信息。比如来短信、电话、电量过低等情况。广播注册接收静态

2017-08-28 16:29:24 235

原创 安卓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 296

原创 安卓四大组件之activity笔记

活动activity启动时的默认活动界面在活动中编写了MainActivity后,需要再AndroidManifest.xnl文件中对其进行设置为启动后的默认活动进程,设置属性如下。 <activity android:name=".MainActivity"> <intent-filter> <action android:name="android.i

2017-08-25 10:14:46 272

原创 安卓应用层与底层驱动之间的调用

APP应用程序->应用框架层->硬件抽象层-> 硬件驱动程序一、硬件驱动层进入kernel/drivers文件夹中,创建一文件夹,放入驱动程序。包括头文件,C文件,Makefile,Kconfig。同时对drivers下的Makefile跟Kconfig进行相应的添加,这样配置编译选项后,即可编译。编译完后,可以在/dev,/proc,/sys/class中得到相应的文件,其中dev下的文件即为该设

2017-08-25 10:13:28 5555

原创 vim编辑器的一些其他用法

删除列1.光标定位到要操作的地方。 2.CTRL+v 进入“可视 块”模式,选取这一列操作多少行。 3.d 删除。插入列插入操作的话知识稍有区别。例如我们在每一行前都插入”() “: 1.光标定位到要操作的地方。 2.CTRL+v 进入“可视 块”模式,选取这一列操作多少行。 3.SHIFT+i(I) 输入要插入的内容。 4.ESC 按两次,会在每行的选定的区域出现插入的内容。一些特色功

2017-08-22 17:18:21 261

原创 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 1005

原创 Linux - PWM的驱动编写

比如要用到pwm1,那么首先要保证这个pwm1并没有被别的驱动程序占用。 比如在驱动的设备树里面:backlight {compatible = "pwm-backlight";pwms = <&pwm1 0 25000>;……}可以看到里面把pwm1已经占用掉了,那么除了可以把相应的驱动程序设置为不编译以外,也可以直接把这个设备树里面的标识屏蔽掉,那么在加载驱动时在设备树里面没有找到对应

2017-08-22 17:15:31 10816 1

原创 printk的级别

用户空间有printf(),内核空间有printk(),编写用户空间应用程序的时候,一般都用printk()。 printk()与printf()的一个重要区别就是前者可以指定消息的打印级别,内核根据这个指定的级别来决定是否将消息打印到终端上。如下表所示,printk()共有8个级别。 级别 描述KERN_EMERG 紧急情况,系统可能会崩溃KERN_ALERT 必须立即响应KERN

2017-08-22 17:14:05 1371 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 1234 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 268

原创 FILE文件指针相关操作

文件的打开模式 w 打开只写文件,若文件存在则文件长度清为0,即该文件内容会消失。若文件不存在则建立该文件。 w+ 打开可读写文件,若文件存在则文件长度清为零,即该文件内容会消失。若文件不存在则建立该文件。 wb 只写方式打开或新建一个二进制文件,只允许写数据。 wb+ 读写方式打开或建立一个二进制文件,允许读和写。 r 打开只读文件,该文件必须存在,否则报错。 r+ 打开可读写的文件,

2017-08-22 17:11:05 1087

原创 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 7450

原创 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 672

原创 adb下载程序时提示权限问题

Adb push … … 前者为本机目录下的某个文件,后者为开发板的某个目录但是有时候会提示faild to capy …… Permission denied. 这时候可以先对要拷贝的目录进行chmod 777 目录来加权限 如果仍旧不行,可以使用以下命令:”mount -o rw,remount 目录” 来实现加载权限

2017-08-22 17:07:54 485

转载 STM32单片机上电后时钟的默认配置过程

文章系转载,写的很好。写作原由:今日接手用stm32f100xx芯片开发的项目,以前用的是stm8s 和stm32f103xx芯片;因为在别人的项目代码的基础上做2次开发,但是发现那个代码main函数中没有对系统时钟的设置的相关函数,一直纳闷,但也没有深究,直至昨日 调试时出现串口收发数据出错,源代码在原项目的板子上串口发送、接收数据正常,同样程序在项目板子上收发的数据不正确, 两块板子芯片一样,串

2017-03-23 17:15:52 7409

转载 关于ARM伪指令

最近在写STM32芯片的程序,关于真正的底层接触的不多。 很懊恼。 如果写程序只是关心用到的寄存器怎么设置,程序算法的逻辑的话,我觉得还不够,所以下面看了一下关于STM32的工程的第一步执行的文件: 汇编程序:startup_stm32f10x_hd.s //名字可能不是都相同 在这个程序中,执行的是在main函数以前需要初始化的一些东西,比如说:堆栈的分配,中断对应的中断处理函数名称,中断

2017-03-23 09:08:26 5735

原创 STM32 -- 笔记一 -- CLK、GPIO、PWM

时钟时钟源:HSI、HSE、LSI、LSE、PLL 时钟频率都不一样。 为什么要多个时钟源? A:STM32拥有者丰富的外设,这些外设需要的时钟频率不一定都要有系统时钟那么高,像是看门狗,只需要几十k的时钟频率即可。并且,同一个电路,时钟越快功耗越大,同时,抗电磁干扰能力也会越弱。系统时钟SYSCLK的分频:通过AHB分频器分频以后送给各模块使用模块包括总线,内核,内存,DMA等

2017-03-09 10:30:31 8198

原创 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 45537 4

转载 STM32深入浅出(转载笔记)

看到了一份关于STM32学习的笔记,写的很好,但是特别的长,所以先把这份资料保存下来,以后慢慢看。STM32学前班教程之一:为什么是它经过几天的学习,基本掌握了STM32的调试环境和一些基本知识。想拿出来与大家共享,笨教程本着最大限度简化删减STM32入门的过程的思想,会把我的整个入门前的工作推荐给大家。就算是给网上的众多教程、笔记的一种补充吧,所以叫学前班教程。其中涉及产品一律隐去来源和品牌,以防

2017-03-08 15:46:56 3027

原创 UNIX系统编程复习笔记 一

2016.12.5 DAGEa.操作系统: 是管理计算机硬件与软件资源的计算机程序。操作系统的功能包括管理计算机系统的硬件、软件及数据资源,控制程序的运行,改善人机界面,为其他的应用软件提供支持,是计算机的系统资源最大限度的发挥作用等。操作系统管理者计算机硬件资源,同时按照应用程序的资源需求,进行分配资源。资源管理,程序控制,人机交互。处理器管理、存储器管理、文件关系、设备管理。*b.

2016-12-05 22:32:56 308

转载 读书笔记 · Accelerated C++ 一

前言:因为单独看书的话,比如一些函数类的东西都记不住,并且看完一些重点也常常忘记,所以写一下笔记,方便以后查阅。 C++因为之前没有什么经验,所以现在看的书是《Accelerated C++》这本,这本书算是C++入门的书籍了,讲的东西都是比较基础的内容。希望这本书阅读完了以后能对C++有所入门,到时候可以看一些进阶的书籍。2016.11.24 DAGEa.基本的格式#include <iost

2016-11-25 10:39:01 266

转载 C语言深度剖析笔记(七)

2016.9.7 DAGE学习内容:C语言深度剖析笔记(七)a.内存管理1.栈、堆、静态区:静态区:保存自动全局变量和 static 变量(包括 static 全局和局部变量)。静态区的内容在总个程序的生命周期内都存在,由编译器在编译的时候分配。栈:保存局部变量。栈上的内容只在函数的范围内存在,当函数运行结束,这些内容也会自动被销毁。其特点是效率高,但空间大小有限。堆:由 malloc 系列

2016-10-26 10:42:21 308

转载 C语言深度剖析笔记(六)

2016.9.6 DAGEC语言深度剖析笔记(六)a.指针数组与数组指针1.定义: 首先要注意[]的优先级要高于*,所以下面 int *p[4]; int (*p)[4]; 可以看做上面的先定义了一个数组,但是数组里面存放的是一些指针,并且数组里面可以存放除了函数以外的任意类型的数据 下面的因为()的原因所以先定义了一个指针,但是这个指针指向

2016-10-26 10:40:31 722

转载 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 296

转载 c语言深度剖析笔记4

2016.8.26 DAGE复习内容:c深度剖析笔记4a.优先级方面需要注意的几个小的点 1. “.”的优先级高于* []高于* == 和!=高于位操作 位操作即&和|和^,~ == 和!=高于赋值符 算术运算符高于位移运算符 逗号运算符在所有运算符中优先级最低 b.预处理

2016-10-21 11:16:44 230

转载 c语言深度解剖笔记3

2016.8.16 DAGE复习内容:c深度解剖笔记3a.符号 1.注释 注释部分编译器会将其剔除掉,但是不是直接剔除,而是替换成空格代替注释 注释里面也可以使用续行符\比如使用//来注释时一行不够 /**/类型的注释不能嵌套 /*之间要是没有空格,那么就会默认是注释部分的开始,所以a/*b,原意a除以地址b里面的

2016-10-21 11:16:18 242

转载 c语言深度解剖笔记2

2016.8.15 DAGE复习内容:c语言深度解剖笔记2a.union联合体 union 维护足够的空间来置放多个数据成员中的“一种”,而不是为每一个数据成员配置空间,在 union 中所有的数据成员共用一个空间, 同一时间只能储存其中一个数据成员,所有的数据成员具有相同的起始地址。一个 union 只配置一个足够大的空间以来容纳最大长度的数据成员。b.大端与小端模式

2016-10-21 11:15:53 296

转载 c语言深度解剖笔记1

2016.8.14 DAGE复习内容:c语言深度解剖笔记1a.c语言运算符的优先级 有三大类:算术运算符、关系运算符与逻辑运算符,还有位运算符等,,, 相同优先级运算符,从左至右依次运算。注意后缀运算优先级高于前缀。因此++i++应解释为++(i++)。 基本表达式 1级 最高 后缀表达式 2极 单目/一元运算 3级

2016-10-21 11:15:23 300

转载 函数指针、指针函数类

函数指针例: type (*func)(type &,type &)   该语句声明了一个指针func,它指向了一个函数,这个函数带有了2个type型参数并返回一个type的值。 p.s. type类型可以被看成是int啊或者是floast等类型。 =============注意项==============1.一个指向函数的指针必须确保该函数被定义且分配了内存,否则它将指向一个空地址

2016-09-28 20:50:38 537

转载 排序算法总结

代码实现冒泡排序 O(n^2)冒泡排序算法的运作如下: 比较相邻的元素。如果第一个比第二个大,就交换他们两个。 对每一对相邻元素作同样的工作,从开始第一对到结尾的最后一对。在这一点,最后的元素应该会是最大的数。 针对所有的元素重复以上的步骤,除了最后一个。 持续每次对越来越少的元素重复上面的步骤,直到没有任何一对数字需要比较。void bublle_sort(int a[],int n){

2016-09-27 15:18:10 198

原创 static关键字详解

static可以用它来定义变量或者函数,保存在静态数据区。作用:1.隐藏:解除多文件时函数名字冲突的问题同时编译多个文件时,所有未加static前缀的全局变量和函数都具有全局可见性。其他源文件也可以访问(extern)。如果加了static,就会对其它源文件隐藏。利用这一特性可以在不同的文件中定义同名函数和同名变量,而不必担心命名冲突。Static可以用作函数和变量的前缀,对于函数来讲,stati

2016-09-27 14:55:38 238

原创 【Linux常用命令 · 复习】

linux环境下,我用的linux版本是Redhat 6.5

2016-06-28 14:46:48 218

原创 博客简介

用来记录笔记与反思,也可能会转载一些大神的文章学习……

2016-06-28 13:54:25 402

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除