11 2008 档案

struct对象在内存中所占的空间大小(内存对齐)
摘要:对于一个struct对象,其在内存中所占空间的大小往往不是所有成员的字节大小相加之和。运行下面代码看一下:#include<iostream> usingnamespacestd;//union structdemo{charc;shorts;inti;longl;floatf;doubled;longdoublelb;};intmain(){cout<<sizeof(demo)<<endl;return0;} 我在WindowsXp,vs2008下输出为32,为什么不是1+2+4+4+4+8+8呢?因为struct对象在存储时采用对齐原则,Windows默 阅读全文

posted @ 2008-11-27 22:11 NULL00 阅读(1159) 评论(0) 推荐(0)

以二进制方式输出数字在内存中的存储形式
摘要:对于二进制表示的float类型的2.5,其在内存中的表示为01000000 00100000 00000000 00000000,如果我们想打印出它在内存中是如何表示的,那么我们可以用1进行移位,与每个比特进行与运算,还是看看代码吧: 对于输入参数,在visual studio下可以点击项目->属性->配置属性->调试->命令参数进行输入,在visual c++6.0可以点击工程->设置->调试->程序变量里输入。输入2.5打印看看,其结果与我们预期相同。#include <cstdlib> #include <iostream> 阅读全文

posted @ 2008-11-27 21:30 NULL00 阅读(1219) 评论(0) 推荐(0)

C++中“#”号妙用
摘要:在写程序时,我们经常要输出,比如printf,cout,当你要输出表达式的值,并要在前面输出表达式的形式时,有时会有点麻烦!比如cout<<"a*b(c-d):"<<a*b(c-d)<<endl;有时像"a*b(c-d):"这样的表达式懒得写,或很多这样的表达式,写起来也浪费时间,我们可以用“#”来减少麻烦!貌似没说清楚,举个例子:#include <iostream> using namespace std;#define P(EX) cout<<#EX<<":" 阅读全文

posted @ 2008-11-18 12:41 NULL00 阅读(415) 评论(0) 推荐(0)

数学史上的三次数学危机
摘要:数学史上一共爆发了三次数学危机: 第一次:无理数的发现。 在公元前5世纪,毕达哥拉斯学派认为自然界的任何数都可以由整数或整数之比表示,毕达哥拉斯学派的一项重大贡献是证明了勾股定理,但此学派的一个人发现了一些直角三角形的斜边不能表示成整数或整数之比(不可通约)的情形,如直角边长均为1的直角三角形就是如此。这一悖论直接触犯了毕氏学派的根本信条,导致了当时认识上的"危机",从而产生了第一次数学危机。 第二次:无穷小是零吗? 在18世纪,微积分蓬勃发展,广泛应用。但此时一位大哲理学家指出应用无穷小量究竟是不是零?无穷小及其分析是否合理?由此而引起了数学界甚至哲学界长达一个半世纪的争 阅读全文

posted @ 2008-11-16 00:51 NULL00 阅读(1799) 评论(0) 推荐(0)

UNIX不带缓存的IO函数
摘要:大多数UNIX文件I/O操作只需用到5个函数:open、read、write、lseek、close,上述五个函数经常被称为不带缓存的I/O;不带缓存指的是每个read和write都调用内核中的一个系统调用;这些不带缓存的I/O函数不是ANSI C的组成部分,但是是POSIX.1和XPG3的组成部分。 下面我们来看看这些函数的应用,打开一个文件,读出1024字节,并输出内容。 1 #include <stdlib.h> 2 #include <stdio.h> 3 #include <fcntl.h> 4 #include <unistd.h> 阅读全文

posted @ 2008-11-04 22:17 NULL00 阅读(555) 评论(0) 推荐(0)

为什么叫Windows 7 ?
摘要:微软公司预计在2010年一月份(09年10月24日已经全球发布)推出Windows 7 ,但由于要先发行预测版,可能真正发布时间要迟些。为什么新的操作系统叫Windows 7呢?我们都知道有个Windows NT,但现在好像没谁平时还在说,都在说Xp或Vista。其实,我们现在用的Windows操作系统都是Windows NT系列。Window NT命名最后版本为NT4.0,此后从Windows 2000开始,虽然基于NT技术,但是命名方式改变了,但只要看Windows属性,就知道2000是NT5.0,XP是NT5.1,vista是NT6.0,server2008也是6.0,这就是未来的wi. 阅读全文

posted @ 2008-11-01 23:48 NULL00 阅读(455) 评论(0) 推荐(0)

C++用substr()函数消除前后空格
摘要:最近做了个题目,遇到了要将字符串前后空格消除的细节问题。在Java中好像有一个字符串函数为trim()可以消除字符串后的空格。对于c++,查了一下,可以引用一个c++标准库Boost,可以轻松解决,但要下载,设置环境变量,因而没去弄。当然还可以用正则表达式进行匹配,但似乎都大材小用。不如就用substr()函数,而且string有find_last_not_of,find_first_not_of等等属性,已经够我们解决问题了。#include <iostream> #include <vector> #include <string> #include & 阅读全文

posted @ 2008-11-01 15:41 NULL00 阅读(5990) 评论(0) 推荐(0)

导航