C语言——从基础到入门之第二篇(左移右移位运算符)

本文介绍了C语言中的左移和右移位运算符,详细讲解了有符号整数的原码、反码和补码的概念,以及它们在负整数左移和右移操作中的应用。通过实例解释了正负整数的位移规则,帮助读者理解这些基础概念。
摘要由CSDN通过智能技术生成

左移右移位运算符

大学的时候就选修过C语言程序设计,还水水的拿了一个C语言二级证书,此后C语言仿佛就与我无关了,知道研究生第二年开始做项目,我才知道这门古老程序语言的重要性。对于数学专业的我而言,matlab确实简单好入门,处理一些数学问题来说得心应手,然而,就有些方面而言,C语言确实要比matlab好很多,最重要的原因当然是因为项目中那些难处理的规模较大的模型本体是C写的,然而翻译成matlab语言工作量实在太大而且运行效率极慢,所以不得不逼着我重新开始学习这一门古老的语言。
为什么第二篇要选择左移右移位运算符来写呢,主要是因为在我重新学习C的道路上第一个让我觉得怀疑我自己是否学过C语言的就是这块了。当然在讲主要内容之前,有一块的内容非常重要,那就是关于有符号的二进制数原码,反码,补码之间的转换了。

原码,反码,补码

首先,我想按我自己的理解说一下这三个分别是什么,对于正整数而言,它的原码和补码是一直的,而反码就是为了求解补码,所以可以不做讨论,只需关注负整数的原码,反码,补码。

原码

一个整数翻译成二进制数,就为这个整数的原码,而转化过程为,首先将绝对值通过不断模2取余,将最后一个因子作为首位之后倒叙补充各个余数所得到的二进制数放在符号位之后,正整数符号位为0,负整数符号位为1,例如

求-125的原码

  1. 125所得到二进制数为: 11111101
  2. -125 符号位取1
  3. -125的原码
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值