0
点赞
收藏
分享

微信扫一扫

趣味算法-学习笔记(2)

1. 基本数据类型

原码 反码和补码

正数的反码是其本身

负数的反码是在其源码的基础上,符号位不变,其余各个位取反

负数的补码是在其原码的基础上,符号位不变,其余各位取反,最后+1

1.1. 整数类型

int 占用4个字节 32个比特

long 占用8个字节 64个比特

short 占用2个字节 10个比特

1.2. 浮点类型

浮点类型一般用于保存小书

float 单精度浮点 占用4个字节 32个比特

double 双精度浮点 占用8个字节 64个比特

字符类型

char 占用1个字节 可以表示所有的ASCll码的字符 每一个数字对应的是编码表中的一个字符

编码表包含所有的常见的字符 ,包括运算符号 数字 大小写字母等

趣味算法-学习笔记(2)_算法

变量:

数据类型 变量名称 < 初始值

不能以数字开头,不能重复使用

不能使用关键字,可以包含数字但是不能数字开头

注意变量一定要先声明再使用

趣味算法-学习笔记(2)_算法_02

float 单精度浮点数 4个字节,32bit

double 双精度浮点数 8个字节,64bit

#include <stdio.h>


int main() {
double a;
a = 0.5;
int b = 2;
int c = a + b;
printf("a=%f, b=%d, c=%d", a , b, c);
return 0;
}

趣味算法-学习笔记(2)_算法_03

#include <stdio.h>


int main() {
double a = 3.5 ;
float b = 4.5 ;
printf("a = %f, b = %lf ", a ,b );
return 0;
}

趣味算法-学习笔记(2)_#include_04

1字符类型

char

变量

变量的使用

无符号数

类型转换

#include <stdio.h>


int main() {
double b = 3.74 ;
int i = b ;
printf("%d", i);
}

趣味算法-学习笔记(2)_开发语言_05

  1. 不同的类型优先级不同(根据长度而定)
  2. char和short类型在参与运算时一律转换为int再进行运算
  3. 浮点类型默认按双精度进行计算,所以就算有float类型,也会转换为double类型参与计算
  4. 当有一个更高优先级的类型和一个低优先级的类型同时参与运算时,统一转换为高优先级运算,比如int和long参与运算,那么int转换为long再算,所以结果也是long类型,int和double参与运算,那么先把int转换为double再算

趣味算法-学习笔记(2)_c++_06

趣味算法-学习笔记(2)_算法_07

运算符

基本运算符

加法:+

减法:-

乘法:*

除法:/

赋值:=


#include <stdio.h> int main() { int a = 10, b = 9; printf("%d", a + b); }


趣味算法-学习笔记(2)_运算符_08

运算符的优先级

#include <stdio.h>

int main() {
int a = 20, b = 3;
printf("%d",a + b * b);
}

先算乘除后算加减

#include <stdio.h>

int main() {
int a = 20, b = 3;
printf("%d",((a + 6)*b)*b);
}

基本都用小括号

趣味算法-学习笔记(2)_c++_09

逗号运算符

逗号运算符从前往后依次执行,赋值结果时最后边的结果

自增自减运算符

a = a + 1 ;

++a ;

#include <stdio.h>

int main() {
int a = 11;
--a;
printf("%d", a);

}

趣味算法-学习笔记(2)_运算符_10

重点内容:

自增运算符++在前,那么先自增再出结果;自增运算符++在后,那么先出结果再自增

复合赋值运算符

#include <stdio.h>

int main() {
int a = 11;
int b = a += 5;
printf("%d", a);

}

趣味算法-学习笔记(2)_c++_11

#include <stdio.h>

int main() {
int a = 11;
a--;
printf("%d", a);
}

趣味算法-学习笔记(2)_#include_12

位运算符

<<是让所有的bit位进行左移操作,上面就是左移1位

10 = 00001010 现在所有bit位置上的数据左移一位 00010100 = 20

左移

让这些2进制数进行乘2

右移

让这些2进制数进行除2

#include <stdio.h>

int main() {
int a = 6, b = 4;
int c = a & b;
printf("c = %d ", c);

}

趣味算法-学习笔记(2)_c++_13

按位与实际上也是根据每个bit位来进行比较

4 = 00001000

6 = 00000110

按位与实际上就是让两个数的每一位都进行比较,如果两个数对应的bit位都是1,其他情况一律为0

所以计算结果为:00000100 = 4;

除了按位与运算,还有按位或运算

#include <stdio.h>

int main() {
int a = 6, b = 4;
int c = a | b;
printf("c = %d ", c);

}

趣味算法-学习笔记(2)_开发语言_14

4 = 00001000

6 = 00000110

00000110 = 6

按位或实际上也是让两个数的每一位都进行比较,如果两个数对应bit位上其中一个是1,那么结果的对应的bit位上就是1,其他情况为0;

还有异和按位非

#include <stdio.h>

int main() {
int a = 6, b = 4;
int c = a ^ b;
printf("c = %d ", c);

}

趣味算法-学习笔记(2)_算法_15

^表示按位异或运算,让两个数的每一位都进行比较,如果两个数对应bit位上不同时为1或者同时为0时,那么结果就是1,否则结果就是0,所以这里结果为2

#include <stdio.h>

int main() {
int c;
c = 3;
// 00000011
printf("c = %d ", ~c);

}

趣味算法-学习笔记(2)_开发语言_16

~ 按位否定针对某个数进行操作,它会将这个数的每一个bit位都置反,0变成1,1变成0

按位运算都是操作数据底层的二进制位来进行的

逻辑运算符

&&逻辑与

||逻辑或

趣味算法-学习笔记(2)_运算符_17

举报

相关推荐

0 条评论