C++ 基本运算

距离第一次认识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
}

 

 

你可能感兴趣的:(C++)