距离第一次认识C++,已经过去了14年有余。重温之。
#include
void basicNumberTypes()
{
int n1 = 1378;
short n2;
char c = 'a';
double d1 = 7.809;
double d2;
n2 = c; // n2 = 'a'
printf("c = %c, n2 = %d\n", c, n2); // c = a, n2 = 97, ASCII(a)=97
c = n1; // c = 1378 => 0x562
printf("c = %c, n1 = %d\n", c, n1); // c = b, n1 = 1378, 0x62 => 98, ASCII(b) = 98
n1 = d1; // n1 = 7
printf("n1 = %d\n", n1); // n1 = 7
d2 = n1;
printf("d2 = %f\n", d2); // d2 = 7.000000
// Thinking 1.3.1
char caesarCipher = 'a';
int iCaesarCipher = caesarCipher;
printf("result = %c", iCaesarCipher + 4);
}
void numbers()
{
int a = 10;
int b = 3;
double d = a / b;
printf("%f\n", d); // 3.000000
d = 5 / 2;
printf("%f\n", d); // 2.000000
d = 5 / 2.0;
printf("%f\n", d); // 2.500000
d = (double) a / b;
printf("%f\n", d); // 3.333333
int n1, n2 = 5;
printf("%d %d\n", n1, n2); // n1: random by gcc
n2++; // n2 = 6
printf("%d %d\n", n1, n2);
++n2; // n2 = 7
printf("%d %d\n", n1, n2);
n1 = n2++; // n1 = 7, n2 = 8
printf("%d %d\n", n1, n2);
n1 = ++n2; // n1 = 9, n2 = 9
printf("%d %d\n", n1, n2);
}
void booleanOperator()
{
int n1 = 4, n2 = 5, n3;
n3 = n1 > n2; // n3 == 0
printf("%d\n", n3);
n3 = n1 < n2; // n3 != 0
printf("%d\n", n3);
n3 = n1 == 4; // n3 != 0
printf("%d\n", n3);
n3 = n1 != 4; // n3 == 0
printf("%d\n", n3);
n3 = n1 == 5; // n3 == 0
printf("%d\n", n3);
}
void thinking2553()
{
char plain = 'p';
char key = 'D';
char encry = plain ^ key;
printf("encrypted: %c\n", encry); // '4'
printf("plain: %c\n", encry ^ key); // 'p'
}
void bitOperator()
{
int n1 = 15; // (1111)
short n2 = 15; // 16 bit
unsigned short n3 = 15;
unsigned char c = 15; // 8 bit
n1 <<= 15; // n1 = (111,1000,0000,0000,0000) => 0x78000
n2 <<= 15; // n2 = (1000,0000,0000,0000) => n2 < 0
n3 <<= 15; // n3 = (1000,0000,0000,0000) => n3 > 0
c <<= 6; // (00001111) => (11000000)
printf("n1 = %x, n2 = %d, n3 = %d, c = %x, c<<4 = %d", n1, n2, n3, c, c<<4); // n1 = 78000, n2 = -32768, n3 = -32768, c = c0, c<<4 = 3072
}