news 2026/5/16 21:03:55

C语言04:运算符(一)和原码、反码、补码

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
C语言04:运算符(一)和原码、反码、补码

文章目录

  • 前言
  • 算术操作符
  • 赋值操作符
  • 复合赋值符
  • 单目操作符
  • 移位运算符
  • 原码
  • 反码
  • 补码

前言

本文是介绍的是算术操作符、赋值操作符、复合赋值符、单目操作符、移位运算符,和原码、反码、补码


算术操作符

算数操作符作用注意事项
+两个数进行加分运算
-两个数进行减法运算
*两个数进行乘法运算
/两个数进行除法运算整数/整数=整数(5/2=2)
整数/小数=小数(5/2.0=2.5)
%两个数进行取余运算(5%2=1)只能用于整数

赋值操作符

a=10;

=将10这个常量赋值给a


复合赋值符

复合赋值符作用等价写法
+=先加后赋值a=a+b(b为常量)
-=先减后赋值a=a-b(b为常量)
*=先乘后赋值a=a*b(b为常量)
/=先除后赋值a=a/b(b为常量)
%=先取余后赋值a=a%b(b为常量)
<<=先左移后赋值a=a<<b(b为移的位数)
>>=先右移后赋值a=a>>b(b为移的位数)
&=先按位与后赋值a=a&b(b为移的位数)
|=先按位或后赋值a=a|b(b为移的位数)
^=先按位异或后赋值a=a^b(b为移的位数)

举例

inta=10;a+=5;

a先加后赋值变成了15

注意
a必须是变量,b是常量、变量、表达式都可以


inta=10;intb=2;a+=2;a+=b;a+=b*2;

单目操作符

单目操作符作用
++变量自增
--变量自减
逻辑非(可以使真变假,假变真)
~按位取反(使二进制的每一位取反(0变成1,1变成0))

举例

inta=1;a++;

a自增变成了2

chara=10;charb=0;b=~a;

a的二进制数是(0000 1010),正数的原,反,补码一致,然后进行取反得到补码(1111 0101),在减去一个二进制1(0000 0001)得到反码(1111 0100),再对反码取反符号位不变,其他位取反,得到-11(1000 1011)的二进制数


移位运算符

移位运算符作用格式
<<将a的二进制位左移n位,右边补0a>>n
>>将a的二进制位右移n位,左边补符号位a<<n

举例

chara=10;charb=0;b=a<<2;

正数的原、反、补码一致,所以a的补码为(0000 1010)左移两位变为(0010 1000)也就是40的补码,所以就是40

chara=-10;charb=0;b=a>>2;

-10的补码是(1111 0110),右移两位,变为补码(1111 1101),再减1取反变成(1000 0011)也就是-3的反码


原码

原码就是一个数的二进制形式

注意:
正数的原、反、补码一致


反码

就是对负数的符号位不变,其他位取反


补码

就是对负数的反码加上一个二进制的1

举例(以char类型为例)
正数 5
原码:0000 0101
反码:0000 0101
补码:0000 0101

负数 -10
原码:1000 1010
反码:1111 0101
补码:1111 0110

为什么要用补码来存呢?是因为计算机硬件的设计中,加法电路最容易实现,
使用补码,可以将减法运算统一转化为加法运算

注意:
负数的符号位是1,正数的符号位为0
上述的取反,移位…,都是在补码都基础上进行的,不是原码或补码

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/5/16 21:02:16

基于Python与OpenCV的屏幕视觉自动化工具开发实战

1. 项目概述与核心价值 最近在折腾一个挺有意思的玩意儿&#xff0c;叫 screen-vision 。这名字听起来有点玄乎&#xff0c;但说白了&#xff0c;它就是一个 基于计算机视觉的屏幕内容实时分析与自动化工具 。你可以把它理解为一个“数字眼睛”&#xff0c;它能持续盯着你…

作者头像 李华
网站建设 2026/5/16 21:02:15

利用 Taotoken 统一 API 为内部低代码平台集成 AI 能力

&#x1f680; 告别海外账号与网络限制&#xff01;稳定直连全球优质大模型&#xff0c;限时半价接入中。 &#x1f449; 点击领取海量免费额度 利用 Taotoken 统一 API 为内部低代码平台集成 AI 能力 为内部低代码平台引入 AI 能力&#xff0c;正成为提升平台自动化和智能化水…

作者头像 李华
网站建设 2026/5/16 21:01:19

第8章 部署 Calico 网络插件(仅 master01)

本章说明: Calico 是生产环境最常用的 CNI(容器网络接口)网络插件之一,基于 BGP(边界网关协议)实现三层路由,无需 overlay 封装,网络性能损耗极低。在 Kubernetes 集群中,网络插件负责为每个 Pod 分配唯一的 IP 地址,并实现 Pod 之间的跨节点通信。本章部署 Calico …

作者头像 李华
网站建设 2026/5/16 20:58:14

最新Nessus2026.5.8版本主机漏洞扫描/探测工具Windows/Linux

前言Nessus号称是世界上最流行的扫描程序&#xff0c;全世界有超过75000个组织在使用它。该工具提供完整的电脑扫描服务&#xff0c;并随时更新其数据库。Nessus不同于传统的扫描软件&#xff0c;Nessus可同时在本机或远端上遥控&#xff0c;进行系统的分析扫描。对应渗透测试人…

作者头像 李华
网站建设 2026/5/16 20:56:54

如何3分钟解锁QQ音乐加密文件:qmc-decoder终极使用指南

如何3分钟解锁QQ音乐加密文件&#xff1a;qmc-decoder终极使用指南 【免费下载链接】qmc-decoder Fastest & best convert qmc 2 mp3 | flac tools 项目地址: https://gitcode.com/gh_mirrors/qm/qmc-decoder 还在为QQ音乐下载的加密文件无法在其他播放器播放而烦恼…

作者头像 李华