【学习笔记之我要C】初识操作符和原码、反码、补码

简介: 【学习笔记之我要C】初识操作符和原码、反码、补码

一、操作符

 1.算术操作符

+ 加法
- 减法
* 乘法
/ 除法
% 取模/取余,得余数

2.移位运算符

<< 左移操作符
>> 右移操作符


移位操作符移动的是二进制位数


bcb4efcc54494514bcf9b0b6c9648981.png

一个int占用的内存为4字节,故a的值表示为:


00000000 00000000 00000000 00000010


a向左移动一位,后面自动添0,


00000000 00000000 00000000 00000100


然后把得到的二进制转化为十进制,即为4

 3.位操作符


& 按位与
| 按位或
^ 按位异或


 4.赋值操作符

=  +=  -=  *=  &=  ^=  |=  >>=  <<=

 5.单目操作符


image.png

下面是关于~操作符的代码(这里涉及到原码、反码、补码的知识)

int main() {
  //0的二进制值为00000000 00000000 00000000 00000000
  //~是按位取反所以结果为11111111 11111111 11111111 11111111
  //一个整数在内存中存储的是补码
  //-1的原码为10000000 00000000 00000000 00000001,其中第一位表示正负号,0正1负
  //反码是对原码取反,得11111111 11111111 11111111 11111110,符号位不变
  //补码是对反码加一,得11111111 11111111 11111111 11111111
  //正整数的原反补相同
  int a = 0;
  printf("~a的值是:%d\n", ~a);
  return 0;
}

6.关系操作符

> 大于
>= 大于等于
< 小于
<= 小于等于


int main() {
  //条件运算符
  int a = 1;
  int b = 3;
  int MAX = a>b ? a : b;
  printf("MAX:%d\n", MAX);
  return 0;
}

 9.逗号表达式

逗号表达式,逗号隔开一串表达式,逗号表达式是从左向右一次计算的、整个表达式的结果是最后一个表达式的结果。

   exp1, exp2, epx3, ...expN

10.下标引用和函数调用

[ ] 下标引用操作符(常见于数组)
() 函数调用操作符,调用函数时,函数名后边的()就是函数调用操作符


二、原码、反码、补码

 在计算机内,有符号数有三种表示方式:原码、反码和补码1

 原码、反码、补码都是二进制的,第一位数用来表示正负,0表示这是一个正数,1表示这是一个负数,之后的数用来表示这个数的大小。通常以8的倍数为一组,因为1B(字节)=8(bit)位,一位就代表一个二进制数。举个例子:

7 -7
原码 0000 0111 1000 0111
反码 0000 0111 1111 1000
补码 0000 0111 1111 1001

 正数的原码、反码、补码是一样的;

 负数的反码就是原码除符号位外全部取反,补码就是在得出来的反码基础上+1。

操作符详解:【学习笔记之菜Dog学C】详解操作符


  1. 又有个说法是,计算机内只补码,没有原码和反码。具体我没有查,我推测应该是原码、反码有弊端被淘汰了。 ↩︎
目录
相关文章
|
6月前
原码、反码、补码的互相转换
原码、反码、补码的互相转换
159 0
|
6月前
|
存储
原码,补码的除法
原码,补码的除法
79 1
|
5月前
|
程序员
程序员必知:原码、反码、补码和移码详解
程序员必知:原码、反码、补码和移码详解
95 0
|
6月前
|
存储 编译器 C语言
C语言中的原码、反码和补码
C语言中的原码、反码和补码
204 0
|
机器学习/深度学习 存储
数据的表示:原码、反码、补码、移码以及浮点数的运算
数据的表示:原码、反码、补码、移码以及浮点数的运算
478 0
数据的表示:原码、反码、补码、移码以及浮点数的运算
单目操作符(含原码反码补码转换)
单目操作符(含原码反码补码转换)
原码、反码、补码的互换
计算机中国的有符号数(整数)有三种表达方式,即原码、反码、补码。
|
Java
进制转换、原码、反码、补码及位运算详解
进制转换、原码、反码、补码及位运算的简单示例
660 1
进制转换、原码、反码、补码及位运算详解
|
存储
一篇轻松带你Carry原码、反码、补码(建议收藏)
一篇轻松带你Carry原码、反码、补码(建议收藏)
219 0
原码、反码、补码
原码、反码、补码区别
164 0