摘要: c/c++采用IEEE表示法存储浮点类型,公式为:(-1)sx M x 2E其中:s是符号位,决定正数(0)还是负数(-1),数值为0的数字符号位做特殊处理。M是二进制有效数。E是2的幂,作用是对2进制加权。那么在C中,存储格式如下:sf(M=1+forM=f)e(E=e-bias,bias为2k-1,k为E的位数)0(1位) | 1-23(23位) | 24-31(8位) | 32位0(1位) | 1-52(52位) | 53-63(11位) |64位而根据E的值的不同浮点数的表示方法有一下三种:规范化值:E为无符号数,当E不是全0或者全1时,此时就是用于规范化表示。E = e-bias,. 阅读全文
posted @ 2013-10-31 11:38 屠戮者 阅读(768) 评论(0) 推荐(0)
摘要: 关于一维指针的用法,很多资料都有int integer=0; const int * pointer = &a;常量指针,指针指向地址所对应的的内容不可改变 ,即不可进行这个操作:*pointer = 1;int * const pointer = &a;指针常量,pointer本身是个常量,即意味着int b; pointer = &b;是不允许的。const位置主要是以*号前后为标准的。但是在二维指针当中,情况有些变化,其中规则就是:仅当只有一层间接关系(指针指向基本数据类型)时,才可以将非const地址或者指针赋值给const指针。也就是说:const ** p; 阅读全文
posted @ 2013-09-25 10:25 屠戮者 阅读(639) 评论(0) 推荐(0)
摘要: INPUTint printf ( const char * format, ... );格式化输出格式如下:%[flags][width][.precision][length]specifier一些比较实用的标记:flags:- 左对齐,默认为右对齐 + 显示正负号,默认只显示负号 # 显示前缀标记,如和0x结合使用,输出会在数值前面加上0x 0 当指定输出width时,默认以空格填充,0指示以0 填充width: 指定输出的有效位。specifiers lengthd iu ... 阅读全文
posted @ 2013-09-25 10:00 屠戮者 阅读(501) 评论(0) 推荐(0)
摘要: inputint fgetc ( FILE * stream ); int getc ( FILE * stream );int getchar ( void );fgetc返回文件指针当前指定的字符,内部文件pos指向下一个字符。如果流到达了文件结果,函数将返回EOF(一般定义为-1,而字符类型是unsigned char,所以只能用int接收)getc与fgetc作用一样,区别在于getc有可能实现为宏,因此,如果需要获得高效率,优先使用getc,如果需要传递文件指针,使用fgetc,因为宏是无法获取指针的。getchar 文档定义为It is equivalent to calling 阅读全文
posted @ 2013-09-24 13:25 屠戮者 阅读(300) 评论(0) 推荐(0)
摘要: 最近看到了exec系列函数,由于相似函数有6个,于是总结了每个函数的寓意方便记忆。6个函数分别如下:int execl(const char *path, const char *arg, ...);int execlp(const char *file, const char *arg, ...);int execle(const char *path, const char *arg, const char *envp[]);int execv(const char *path, const char *argv[]);int execve(const char *path, cons.. 阅读全文
posted @ 2013-07-31 10:21 屠戮者 阅读(288) 评论(0) 推荐(0)
摘要: 一般的大家的印象中要实现对象的多态调用,必须用指针来实现,其实引用也可以实现相同的效果。看下面的例子: 1 #include <iostream> 2 3 #include <cstdio> 4 5 class Object { 6 7 std::string type_name; 8 9 protected:10 11 explicit Object(std::string const& type_name) : type_name(type_name) {};12 13 public:14 15 Object() : type_name("Obje 阅读全文
posted @ 2013-06-17 10:31 屠戮者 阅读(4096) 评论(0) 推荐(0)
摘要: C++新手学习的时候经常会有两个误区:如果类没有构造函数,编译器会自动添加一个默认构造函数。编译器合成出来的默认构造函数会初始化类数据成员。 编译器并非总是会合成默认构造函数的。根据C++文档的说明:如果没有任何用户定义的构造函数,那么会有一个默认构造函数会被暗中声明出来。但是合成的默认构造函数是分为trivial和nontrivial 的,trivial的其实就是没有添加,只是在概念上拥有一个tirvial构造函数。nontirivial的才是真正做实事的。当一个类没有任何构造函数时,默认构造函数会在以下4中情况下合成出来,也就是nontrivial构造函数(符合构造函数必定会被调用的C++ 阅读全文
posted @ 2013-06-14 10:05 屠戮者 阅读(289) 评论(0) 推荐(0)
点击右上角即可分享
微信分享提示