自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

wonder专栏

如果我在这个世上不能留下点东西,那还不如早点死去

  • 博客(21)
  • 资源 (2)
  • 收藏
  • 关注

转载 都是coupling惹的祸

我们都知道写flash是严格按page的顺序programming的, 即page 0, page 1,page 2 ,page3, …。但是对于2D MLC/TLC以及现在的micron 3D,我们所谓的顺序page对应到物理的page其实并不是连续的。我们以2D MLC为例。看到了吗? WL0 有4个page 分别为 page 0,page 1,page 4 和page 5. Page 0 和page 4 是shared page, page 0 是lower page, page 4 是upp

2022-04-15 08:55:13 261

原创 装修杂记录

目录装修顺序装修避坑fdfa装修顺序拆旧砌墙水电地面找平瓦工木工油漆安装油漆修补装修避坑

2021-08-01 19:53:25 184

原创 Centos7 搭建lumen(apache2.4+PHP7.1.3)

1. Apache install2. PHP 安装lumen5.3 要求PHP >= 5.5.9OpenSSL PHP ExtensionPDO PHP ExtensionMbstring PHP Extension选择安装php7.1.3先解压(略)配置./configure --prefix=/usr/local/php --with-

2017-04-12 22:03:26 464

原创 Queue depth 增益(SSD/flash,etc)

SATA/PCIE/UFS 都支持Q的操作,即一次性发多个R/W命令。它的performance 增益并不是简单的乘以queue depth。每个queue落到die上是随机的,因此需要通过概率来统计这个值。

2015-10-25 22:55:39 1232

原创 switch case 为何比if else 高效

If value issequential, it uses table to record the offset and jump to the executingaddressIf value is randomand big interval, it uses binary tree search and jump to the executing address

2015-05-13 14:04:41 856

原创 股票买入卖出手续费

买入手续费1.佣金,不足5块收5块2.上海股票有过户费 万分之六卖出手续费1.佣金同卖出2.上海股票过户费同卖出3.印花税(国家收)成交总额的千分之一举两个个例子,佣金以万分之二点五为例,不同的券商给的佣金不一样,请参考自己的佣金计算case 1: 佣金低于5块收5块买入 600股 每股10块,卖出时每股12块买入费用:佣金 600

2015-01-09 23:38:04 1380

原创 嵌入式与C语言

VolatileVolatile 英文单词的意思是不稳定的,反复无常的. 在C语言中用volatile的关键字声明变量,就是说这个变量会发生意想不到的变化,每次用这个值的时候都需要重新去读取. 精确的讲应该是优化器用这个变量的时候每次都需要重新去读取这个值,而不能用保存在寄存器里的变量。这是编译器优化器的副作用,因此有些变量要定义为volatile, 特别是在嵌入式编程中, 这是区分嵌入式工程

2015-01-08 22:03:07 1026

原创 C/C++编译程序的内存分配(栈,堆,全局区,文字常量区,程序代码区)

栈: 由程序自动分配和释放,非全局变量或静态变量,以及非malloc申请的空间,都在栈中。堆: 由程序员申请的内存空间: malloc, 在堆中申请的内存需要自己释放,malloc与free成对全局区: 全局变量和静态变量,里面又分为初始化区和未初始化区文字常量区: 字符常量程序代码区: 代码 //main.cpp int a = 0; a 全局初

2014-12-27 22:49:45 1382

原创 对于不支持浮点型的10log10运算实现

#include #include #include unsigned int uint10log10(unsigned int value);void main(int argc,char* argv[]){ if(argc<2) { printf("Please usage:10log10.exe value\n"); return; }else{ int i =

2013-01-26 21:42:30 2268

转载 setjmp和longjmp的使用

int setjmp(jmp_buf envbuf); setjmp函数用缓冲区envbuf保存系统堆栈的内容,以便后续的longjmp函数使用。setjmp函数初次启用时返回0值。void longjmp(jmp_buf envbuf, int val);longjmp函数中的参数envbuf是由setjmp函数所保存的堆栈环境,参数val设置setjmp函数的返回值。longjmp函数

2013-01-15 16:56:04 1278

原创 并发 生产者/消费者 读者/写者 哲学家进餐的理解

生产者/消费者问题1.       对于生产者,只有货架不满时生产者才能进行生产,否则过剩无处放,没有生产的必要2.       对于消费者,只有货架上有商品了才能进行购买消费伪代码读者/写者问题与生产者/消费者问题不同的地方:1.数据一直都存在,不存在有空位才能写,有数据才能读的问题,写者写可以覆盖之前的值,读者不会消费数据,数据不会消失。2.允许多个读者

2012-10-08 17:52:07 3931 3

原创 KMP算法 字符匹配

KMP是比较高效的一种字符匹配算法在str中查找是否存在pattern基本思想:1.       pattern的前i-1个与str[j-i+1]至s[j-1]字符匹配时,但pattern[i]与str[j]不匹配,用pattern[next[i]]与str[j]比较,无需从str[j-i+2]开始遍历。因为pattern的字符串本身可能有重复子串,这样就可以省略一些比较步骤。

2012-10-08 17:40:27 1399

原创 创新工场2013年笔面试(四)

3.给定一个整数序列及一个整数,找出序列中所有整数配对,配对的两书之和为该整数方法一:快排+比较方法二:hash表遍历序列Xn,对于Xi (1)在hash表中查找Xn-Xi,若找到则配对 (2)若未找到,将Xi存入hash表。(当有Xn-Xi中存在于序列中,则能查找到Xi)。求更高效的方法!!4.(1)对于两个排好序的数组数列,找出相同的元素(2)是如果上面的序列没有排序。

2012-09-28 00:31:08 81

原创 创新工场2013年笔试题(三)丑陋数

方法一,遍历判断是否为丑陋数/*判断该数是否丑陋数*/bool uglynumber(int number){ if (number<2) return 0; while(number%2==0)number/=2; while(number%3==0)number/=3; while(number%5==0)number/=5; if(number==1) return 1

2012-09-27 01:02:08 2020

原创 创新工场2013年笔试题(二) 位域及结构体对齐

下列程序输出结果 struct A{ int x: 8; int y: 4; int z: 3; double a;};struct B{ int x: 8; int y: 4; double a; int z: 3;};void main(){printf("sizeof(A)=%d,sizeof(B)=%d\n",sizeof

2012-09-25 11:41:11 1906 1

原创 创新工场2013年笔试题(二) 位域及结构体对齐

下列程序输出结果#include using namespace std;struct A{ int x: 8; int y: 4; int z: 3; double a;};struct B{ int x: 8; int y: 4; double a; int z: 3;};void main(){printf("s

2012-09-25 11:33:32 55

原创 创新工场2013年笔试题(二) 位域及结构体对齐

下列程序输出结果#include using namespace std;struct A{ int x: 8; int y: 4; int z: 3; double a;};struct B{ int x: 8; int y: 4; double a; int z: 3;};void main(){printf("s

2012-09-25 11:00:59 87

原创 摩根斯坦利2013年机试题(一) 嵌套类

在一个类内部定义一个类,这个类被称之为嵌套类,或嵌套类型。之所以引用嵌套类,往往是因为外围类需要嵌套类对象作为底层实现,并且嵌套类只用于该外围类的实现,同时可以对用户隐藏该底层实现。嵌套类是一个单独的类,它和外围类是相互独立的,它不具备外围类所定义的成员,同样外围类也不具备嵌套类所定义的成员同样,外围类对嵌套类没有特别的访问权限,嵌套类对外围了也没有特别的访问权限。friend友元关系也不

2012-09-24 17:07:27 1348

转载 Linux/windows 进程/线程间通信机制

Linux进程间通信linux下进程间通信的几种主要手段简介:a)       管道(Pipe)及有名管道(named pipe):管道可用于具有亲缘关系进程间的通信,有名管道克服了管道没有名字的限制,因此,除具有管道所具有的功能外,它还允许无亲缘关系进程间的通信;b)       信号(Signal):信号是比较复杂的通信方式,用于通知接受进程有某种事件发生,除了用于进程间通

2012-09-22 20:25:49 9815

原创 编程之美2.5 “寻找最大K个数”

解法二用快速排序划分的方法#include #include using namespace std;const int K=5;int Partition(int data[],int first,int end);void K_Qsort(int data[],int first,int end,int dst[]);void swap(int &a,int &b);void

2012-09-17 09:58:40 2199

原创 编程之美_2.4 “1的数目”

扩展问题:二进制数N,从1开始,到N的所有二进制数,然后数下其中出现的所有“1”的个数。例如:f(1)=1f(10)=2 (因为01,10共有2个1)f(11)=100 (因为01,10,11共有4个1)思路:以10110为例,考虑最高位为0时共有几个1,因为后面4位中1和0出现的概率是相等的,也即1在每个位上出现的概率为(2^4)/2=8,最高位为0时,所有1的个数为4*8=

2012-09-16 16:39:39 1100

TortoiseSVN-1.7.1中文手册

TortoiseSVN最新的版本中文手册

2011-11-21

win7下搭建moodle平台

利用php+mysql+Apache搭建moodle平台

2010-11-04

空空如也

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

TA关注的人

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