using namespace std; class counter{ private: int value; public: counter():value(0) {} counter& operator++(); int operator++(int); void reset() { value = 0; } operator int() const { return value; } }; counter& counter::operator++() { if (3 == value) value = 0; else value += 1; return *this; } int counter::operator++(int) { int t = value; if (3 == value) value = 0; else value += 1; return t; } int main() { counter a; while (++a) cout << "***\n"; cout << a << endl; while (a++) cout << "***\n"; cout << a << endl; return 0; }
时间: 2024-03-31 16:34:06 浏览: 77
++) {
for(j=0;j<Data_Len-1;j++) {
Temp[j]=Data[j]<<1;
if(Data[j+1]&0x80) Temp[j]|=0x01;
}
Temp[j]=Data[j]<<1;
if(Data这代码定义了一个叫做 counter 的类,表示计数器,包含一个私有成员变量 value,表示计[0]&0x80) Temp[j]|=0x01;
for(k=0;k<Data_Len;k++) Data[k]=数器的值。该类重载了前置递增操作符 operator++,后置递增操作符 operator++(intTemp[k];
}
}
// 压缩置换
void DES_PC2_Transform(const char *Key, char *Temp) {
),将其用于实现计数器的自增运算。此外,该类还包含了一个 reset 函数, int i;
for(i=0;i<48;i++) Temp[i]=Key[PC_2_Table[i]-1];
}
// 异用于将计数器的值重置为 0。最后,该类还重载了 int 类型的转换或函数
void DES_XOR(char *InA, const char *InB, int Len) {
int i;
for(i运算符,用于将计数器的值转换为 int 类型。在主函数中,首先创建了一个=0;i<Len;i++) {
InA[i]^=InB[i];
}
}
// S 盒置换
void DES计数器对象 a,然后使用前置递增操作符 ++a 实现了计数器的自增运算,并_SBOX(const char *In, char *Out) {
int i,j;
for(i=0;i<8;i++) {
int m=(In[i*6+0]<<1)+(In[i*6+5]<<0);
int n=(In[i*6输出了三个星号,重复三次后,因为计数器的值已经为 3,所以再次进行自增运算时,计数器的值被重置为 0。接着,使用 int 类型的转+1]<<3)+(In[i*6+2]<<2)+(In[i*6+3]<<1)+(In[i*6+4换运算符将计数器的值输出到标准输出流中,然后使用后置递增操作符 a++]<<0);
int OutByte=S_Box[i][m][n];
for(j=0;j<4;j++) {
Out[i 实现计数器的自增运算,并再次输出三个星号,重复三次后,计数器的*4+j]=(OutByte>>j)&0x01;
}
}
}
// F 函数
void DES_F(char In[32值变为 3,再次进行自增运算时,返回值为 3,因为是后置自增,], const char Ki[48]) {
char MR[48];
int i;
// 先将 32 位输入进行扩所以计数器的值也被自增为 0。最后,使用 int 类型的转换运算符将展置换,变成 48 位
for(i=0;i<48;i++) MR[i]=In[E_Table[i]-计数器的值输出到标准输出流中。
阅读全文