(C语言)操作符详解

简介: (C语言)操作符详解

1前置加加和后置加加的区别,以及逗号表达式的解释


++运算符:分为前置++和后置++,


前置++:先加1,后使用,即先使用变量中内容,然后给结果加1


后置++:先使用变量中内容,整个表达式结束时,给变量加1


逗号表达式,取最后一个表达式的值。


例子

#include <stdio.h>
int main()
{
  int a, b, c;
  a = 5;
  c = ++a;
  b = ++c, c++, ++a, a++;
  b += a++ + c;
  printf("a = %d b = %d c = %d\n:", a, b, c);
  return 0;
}

计算其中a,b,c的值


c = ++a;// ++a:加给a+1,结果为6,用加完之后的结果给c赋值,因此:a = 6  c = 6


逗号表达式优先级最低,这里先算b=++c;此时b=7;c++和++a,a++在结束时会给c+1;a+2,此时


a=8,c=8;


b+=a++ +c;相当于8+8+7=23;


2移位操作符


移位操作符只能对整数操作


<<左移操作符


>>右移操作符

#include<stdio.h>
int main()
{
  int a = 5;
  //把a在内存中存储的二进制位向左移动两位
  int b = a << 2;
  printf("%d", b);
  return 0;
}

输出为20


00000101-->00010100


3 整数在二进制中的规则


整数有3种二进制的表示形式


原码,反码,以及补码


正整数--原,反,补相同


负整数--原,反,补不同,需要计算


1个字节占8个位,整型是4个字节,有32个位


负数的反码是原码的第一位不变,因为第一位是符号位,然后其余按位取反

int a = -5;
100000000000000000000000000000000101--原码
111111111111111111111111111111111010--反码
反码的二进制序列加1,就是补码
111111111111111111111111111111111011--补码

整数在内存中存储中存储的是补码!!!


printf在打印或使用的时候,用的是原码的值


4右移操作符:


1:算数右移


2:逻辑右移


到底右移是算数还是逻辑右移取决于编译器


我们常见的编译器都是算是右移

相关文章
|
17天前
|
C语言
C语言之操作符1
C语言之操作符1
19 0
|
18天前
|
编译器 C语言
操作符详解(C语言基础深入解析)
操作符详解(C语言基础深入解析)
|
1月前
|
存储 编译器 C语言
爱上C语言:操作符详解(下)
爱上C语言:操作符详解(下)
|
2月前
|
算法 测试技术 C语言
【C语言】异或(^)操作符
【C语言】异或(^)操作符
18 0
|
2月前
|
存储 算法 编译器
【c 语言 】移位操作符详解
【c 语言 】移位操作符详解
40 0
|
2月前
|
存储 算法 程序员
【c 语言 】位操作符详解
【c 语言 】位操作符详解
57 0
|
2月前
|
存储 编译器 Linux
操作符详解【c语言】
操作符详解【c语言】
|
2月前
|
C语言
【C语言】位操作符详解
【C语言】位操作符详解
25 0
|
2月前
|
存储 C语言
【C语言】位与移位操作符详解
【C语言】位与移位操作符详解
【C语言】位与移位操作符详解
|
2月前
|
存储 编译器 程序员
c语言从入门到实战——操作符详解
C语言操作符指的是程序中用来进行各种计算、逻辑和条件操作的符号或符号组合。 操作符是编程中用于执行特定操作或比较数据的符号。它们根据操作类型分为算术、比较、逻辑和位操作符。算术操作符执行加、减、乘、除等数学运算;比较操作符比较两个值的大小或相等性;逻辑操作符连接多个条件,形成更复杂的逻辑判断;位操作符则直接对整数的二进制位进行操作。了解各种操作符的特性和用法,对于编写高效、准确的代码至关重要。
56 0