当前位置:首页 » 程序人生

位、字节、字、进制 On 程序人生  @2011-10-20

位:“位(bit)”是电子计算机中最小的数据单位。每一位的状态只能是0或1。

字节:8个二进制位构成1个“字节(Byte)”,它是存储空间的基本计量单位。1个字节可以储存1个英文字母或者半个汉字,换句话说:1个汉字占据2个字节的存储空间。

字:“字”由若干个字节构成,字的位数叫做字长,不同档次的机器有不同的字长。例如一台8位机,它的1个字就等于1个字节,字长为8位。如果是一台16位机,那么,它的1个字就由2个字节构成,字长为16位。同理32位机,是有四个字节构成一个字。现在一般都是32位机。字是计算机进行数据处理和运算的单位。

KB:K表示1024,也就是2的10次方。1KB表示1K个Byte,也就是1024个字节。
MB:1MB = 1024KB = 1048576Bytes

进制也就是进位制,是人们规定的一种进位方法。 对于任何一种进制—X进制,就表示某一位置上的数运算时是逢X进一位。 十进制是逢十进一,十六进制是逢十六进一,二进制就是逢二进一。

  评论» 抢沙发

Unicode下CString转char* On 程序人生  @2011-09-27

失败的情况:

//======================================
        // CString fileName = file.GetPathName();

        //测试1
        //char* pChar;
        //pChar = (char *)fileName.GetBuffer();
        ////pChar = fileName.GetBuffer();
        //fileName.ReleaseBuffer();  

        //测试2
       /* char pChar[1024];
        memcpy(pChar,fileName,fileName.);*/

        //测试3
       /* char pChar[1024];
        int nIndex = fileName.GetLength();
        for(int i=0;i<nIndex;i++)
        {
            pChar[i] = fileName[i];
        }
        pChar[nIndex] = 0;*/
//==========================================

(更多…)

打签» , ,   评论» 抢沙发

C/C++ 内存管理 On 程序人生  @2011-09-22

1、内存分配方式

内存分配方式有三种:

(1)从静态存储区域分配。内存在程序编译的时候就已经分配好,这块内存在程序的整个运行期间都存在。例如全局变量,static变量。

(2)在栈上创建。在执行函数时,函数内局部变量的存储单元都可以在栈上创建,函数执行结束时这些存储单元自动被释放。栈内存分配运算内置于处理器的指令集中,效率很高,但是分配的内存容量有限。

(3) 从堆上分配,亦称动态内存分配。程序在运行的时候用malloc或new申请任意多少的内存,程序员自己负责在何时用free或delete释放内存。动态内存的生存期由我们决定,使用非常灵活,但问题也最多。

2、常见的内存错误及其对策

发生内存错误是件非常麻烦的事情。编译器不能自动发现这些错误,通常是在程序运行时才能捕捉到。而这些错误大多没有明显的症状,时隐时现,增加了改错的难度。有时用户怒气冲冲地把你找来,程序却没有发生任何问题,你一走,错误又发作了。 常见的内存错误及其对策如下:

* 内存分配未成功,却使用了它。

(更多…)

  评论» 抢沙发

Oracle中decode 函数用法及实例 On 程序人生  @2011-02-10

用法1:
decode(条件,值1,返回值1,值2,返回值2,…值n,返回值n,缺省值)

该函数的含义如下:
IF 条件=值1 THEN
    RETURN(返回值1)
ELSIF 条件=值2 THEN
    RETURN(返回值2)
    ……
ELSIF 条件=值n THEN
    RETURN(返回值n)
ELSE
    RETURN(缺省值)
END IF

用法2:
decode(字段或字段的运算,值1,值2,值3)

这个函数运行的结果是,当字段或字段的运算等于值1时,返回值2,否则返回值3
当然值1,值2,值3也可以是表达式,这个函数使得某些sql语句简单了许多

(更多…)

打签»   评论» 抢沙发

silverlight控件焦点问题 On 程序人生  @2010-12-14

1:获取当前页面上具有焦点的控件
FocusManager.GetFocusedElement();

2:如何实现按回车切换焦点
在网上溜达了下,主流思路是先把页面上的所有控件按照TabIndex的大小,添加到一个List中,然后获取到当前具有焦点的控件,然后找到其在List中索引,索引加1便得到
下一个控件,最后调用Focus()函数,使其具有焦点。
关键代码: (更多…)

打签» ,   评论» 抢沙发

动态SQL的应用及基本语法 On 程序人生  @2010-10-13

1 应用:
问题1:
CREATE PROCEDURE 存储过程名
AS
    declare @xnames nvarchar(500)
    declare @xvalues    nvarchar(max)                   
   INSERT INTO 表名(@xnames)VALUES(@xvalues)
问题2:
select
(‘SELECT colA FROM TableA WHERE colB = ”’xyz””)   –两个逗号中三个逗号才算一个逗号
 from TableB

(更多…)

打签» ,   评论» 抢沙发