所有作品采用知识共享署名-非商业性使用-相同方式共享 2.5 中国大陆许可协议进行许可.欢迎转载本博客原创内容,请访客遵守以上协议!
有下载时,如果链接前的域名为softs.7softs.com,则请手动更改为softs.huacolor.com,否则将下载失败!链接较多,就不一一修改了!!
有下载时,如果链接前的域名为softs.7softs.com,则请手动更改为softs.huacolor.com,否则将下载失败!链接较多,就不一一修改了!!
Aug
27
说明:1、重新调整了一下,增加了3DES的算法,2Key或者3Key
2、舍弃了尹学渊的用C++构建的DES算法类,另行采用了一个网上算法
最近了解了一下DES算法,然后在网上搜索了一些DES的实现源码。测试了好多,结果都不好。最后采用了尹学渊的用C++构建的DES算法类,并做了简洁的界面出来(附件已更新):
2、舍弃了尹学渊的用C++构建的DES算法类,另行采用了一个网上算法
最近了解了一下DES算法,然后在网上搜索了一些DES的实现源码。测试了好多,结果都不好。最后采用了尹学渊的用C++构建的DES算法类,并做了简洁的界面出来(附件已更新):
Mar
26
Cyclic Redundancy Check循环冗余检验,是基于数据计算一组效验码,用于核对数据传输过程中是否被更改或传输错误。
完整的CRC-32标准所包含的内容:
完整的CRC-32标准所包含的内容:
引用
Name : "CRC-32"
Width : 32
Poly : 04C11DB7
Initial value : FFFFFFFF
Reflected : True
XOR out with : FFFFFFFF
Width : 32
Poly : 04C11DB7
Initial value : FFFFFFFF
Reflected : True
XOR out with : FFFFFFFF
Mar
18
继续利用昨天的那个多继承类的例子,然后在派生类里添加自己的构造函数与析构函数,修改如下:
class C: public A,public B{
private:
int a,b;
public:
void displayC(){
cout<<"function: displayC()\n";
}
C(){
cout<<"Constructor C\n";
}
~C(){
cout<<"Destructor C\n";
}
};
class C: public A,public B{
private:
int a,b;
public:
void displayC(){
cout<<"function: displayC()\n";
}
C(){
cout<<"Constructor C\n";
}
~C(){
cout<<"Destructor C\n";
}
};
Mar
17
一、指向虚函数表的指针(vfptr)是被添加在最前面的,而在虚函数表里面,各个虚函数是按照其声明的顺序排列的。
为了验证,同样的在上面的例子里修改,直接添加一个虚函数进去:
为了验证,同样的在上面的例子里修改,直接添加一个虚函数进去:
Mar
17
一、在 Visual C++中,类的成员变量是按照其声明的大小依次排列在内存中的。
为了验证这一点,我将昨天的一个示例稍稍修改了一下:
#include<iostream>
using namespace std;
class A{
private:
char ch; //将char类型的成员变量提前放置
int a,b;
public:
A(){
cout<<"调用构造函数\n";
a=2;
b=3;
}
~A(){
cout<<"调用析构函数\n";
}
void display(){
cout<<"a+b="<<a<<"+"<<b<<"="<<a+b<<endl;
}
};
int main(){
A a;
a.display();
return 0;
}
为了验证这一点,我将昨天的一个示例稍稍修改了一下:
#include<iostream>
using namespace std;
class A{
private:
char ch; //将char类型的成员变量提前放置
int a,b;
public:
A(){
cout<<"调用构造函数\n";
a=2;
b=3;
}
~A(){
cout<<"调用析构函数\n";
}
void display(){
cout<<"a+b="<<a<<"+"<<b<<"="<<a+b<<endl;
}
};
int main(){
A a;
a.display();
return 0;
}
Mar
16
编译开关:-d1reportAllClassLayout
注意:-d1,这里的是数字“1”,而不是小写的“L”。汗,我自己就犯了这个错误,老是被忽略掉,而不起作用!
另外,不是自己生成一个文件,在控制台编译时,他直接输出在了控制台窗口。所以在控制台编译时,我使用了重定位到文件:
E:\Programming\c_cpp>cl classA.cpp -d1reportAllClassLayout > class.layout
Microsoft (R) 32-bit C/C++ Optimizing Compiler Version 15.00.21022.08 for 80x86
Copyright (C) Microsoft Corporation. All rights reserved.
E:\Programming\c_cpp>
注意:-d1,这里的是数字“1”,而不是小写的“L”。汗,我自己就犯了这个错误,老是被忽略掉,而不起作用!
另外,不是自己生成一个文件,在控制台编译时,他直接输出在了控制台窗口。所以在控制台编译时,我使用了重定位到文件:
E:\Programming\c_cpp>cl classA.cpp -d1reportAllClassLayout > class.layout
Microsoft (R) 32-bit C/C++ Optimizing Compiler Version 15.00.21022.08 for 80x86
Copyright (C) Microsoft Corporation. All rights reserved.
E:\Programming\c_cpp>
Feb
7
过两天就要开始上班了,今天抽空完成了一讲!
讲义见这里:C++学习第4讲:程序的流程控制[讲义]
也许明天还有一讲函数的,讲完了,下面的我也不知道要何时录了!
希望能够完成吧,我也只能对自己这么解释了,SORRY!
讲义见这里:C++学习第4讲:程序的流程控制[讲义]
也许明天还有一讲函数的,讲完了,下面的我也不知道要何时录了!
希望能够完成吧,我也只能对自己这么解释了,SORRY!
Jan
1
呵呵,时间长了,有些实在是记不住了,就把一些不常用的记在这里吧:
long long的最大值:9223372036854775807
long long的最小值:-9223372036854775808
unsigned long long的最大值:1844674407370955161
__int64的最大值:9223372036854775807
__int64的最小值:-9223372036854775808
unsigned __int64的最大值:18446744073709551615
我的电脑对__int128不支持,这个可能是预留给将来的吧:
long long的最大值:9223372036854775807
long long的最小值:-9223372036854775808
unsigned long long的最大值:1844674407370955161
__int64的最大值:9223372036854775807
__int64的最小值:-9223372036854775808
unsigned __int64的最大值:18446744073709551615
我的电脑对__int128不支持,这个可能是预留给将来的吧:
Nov
23
要点:
1、指针
2、数组与字符串
1)指针
对于类型T,T*是“到T的指针”类型。
说白了讲,指针里保留的是一个32位的地址值,这个地址指向了一个内存区域,至于如何解释这个内存区域,则是由其类型决定。
如:char c='a';
char* p=&c;
通过一个完整的示例来看一下:
1、指针
2、数组与字符串
1)指针
对于类型T,T*是“到T的指针”类型。
说白了讲,指针里保留的是一个32位的地址值,这个地址指向了一个内存区域,至于如何解释这个内存区域,则是由其类型决定。
如:char c='a';
char* p=&c;
通过一个完整的示例来看一下:








