c按位取反运算符_取反和按位取反

c按位取反运算符_取反和按位取反介绍二进制是计算机运行和存储数据的基础,按位取反(以下称“取反”)也就是基于二进制进行的一个操作。所不同的是,在完成按位取反之后,还需要转换为“原码”。(人类可能无法接受二进制表示而更倾向于十进制)正数取反取反就是将二进制表示的数字中的0变为1,1变为0。其实原理很简单,但我一开始很难理解首先将数据转换为二进制表示(这里用整数),以10为例子。1.10用二进制表示就是0000101

大家好,又见面了,我是你们的朋友全栈君。如果您正在找激活码,请点击查看最新教程,关注关注公众号 “全栈程序员社区” 获取激活教程,可能之前旧版本教程已经失效.最新Idea2022.1教程亲测有效,一键激活。

Jetbrains全系列IDE使用 1年只要46元 售后保障 童叟无欺

介绍

二进制是计算机运行和存储数据的基础,按位取反(以下称“取反”)也就是基于二进制进行的一个操作。所不同的是,在完成按位取反之后,还需要转换为“原码”。(人类可能无法接受二进制表示而更倾向于十进制)
c按位取反运算符_取反和按位取反

正数取反

取反就是将二进制表示的数字中的0变为1, 1变为0。其实原理很简单,但我一开始很难理解首先将数据转换为二进制表示(这里用整数),以10为例子。1.10用二进制表示就是0000 10102.计算补码:(正数的补码与原码相同,而正数的原码就是二进制)结果为0000 1010(补码)3.按位取反:1111 01014.开始把1111 0101转换为原码,从这里开始就要分情况了《1》如果最高位(从左边开始的第一位)为0则表示的就是正数:正数的原码和取反后的数相同。《2》如果最高位为1则表示的就是负数:先将已取反的数减去1,在对差进行取反(注意:保留最高位不变),最后加上一个负号。所以把1111 0101转换为原码后为 1000 1011 由于1表示的负数,所以可以理解为-000 1011 也就是-11了。
c按位取反运算符_取反和按位取反

负数取反

以-10为例1.先将-10取绝对值10, 10的二进制为 0000 10102.将0000 1010用补码表示:(对于负数的补码:将其对应正数的二进制取反后,加1)即为1111 0101+1=1111 01103.将补码按位取反得 0000 10014.将反码转换为原码(参考上一节,步骤4《1》):得 0000 1001所以-10按位取反后为9
c按位取反运算符_取反和按位取反

参考资料

  1. 按位取反的步骤和原理
  2. 补码 – 百度百科
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。

发布者:全栈程序员-用户IM,转载请注明出处:https://javaforall.cn/170465.html原文链接:https://javaforall.cn

【正版授权,激活自己账号】: Jetbrains全家桶Ide使用,1年售后保障,每天仅需1毛

【官方授权 正版激活】: 官方授权 正版激活 支持Jetbrains家族下所有IDE 使用个人JB账号...

(0)
blank

相关推荐

  • MD5算法的Java实现

    MD5算法的Java实现一、算法原理概述MD5即Message-DigestAlgorithm5(信息-摘要算法5)MD4(1990)、MD5(1992,RFC1321)由RonRivest发明,是广泛使用的Hash算法,用于确保信息传输的完整性和一致性。MD5使用little-endian(小端模式),输入任意不定长度信息,以512-bit进行分组,生成四个32-bit数据,最后联…

  • JavaScript ES6 Arrow Functions(箭头函数)

    JavaScript ES6 Arrow Functions(箭头函数)

  • 《黑手党2》全部50本花花公子杂志收集攻略

    《黑手党2》全部50本花花公子杂志收集攻略寻找全部50本花花公子杂志……..看下面的提示找吧(写到手抽+脑抽)==||每章过去了就拿不到了第2章:2本No1.JOE的公寓-在咖啡桌上No3.MIKE的车房-M

  • MAC PHP集成环境安装MAMP

    MAC PHP集成环境安装MAMP我在初学PHP的时候先安装了小皮(PHPstudy),但是这个集成开发软件更适合windows,mac版本的也是在最近才出来的,bug很多。然后去安装了Xmsmpformac,但是也是不是很顺利。最终尝试了一下MAMP。虽然要付费,但是真的香,而且可以有14天的免费试用期。足够初学者进行学习。接下来是一个我安装MAMP的一个过程。1、首先去官网进行安装,左上方点击download,以及接下来跟着走就好了。2、这是安装完以后打开的初始界面。3、我们首先可以配置一下apache和my

  • 小白勿进!安卓版java游戏盒下载「建议收藏」

    小白勿进!安卓版java游戏盒下载「建议收藏」为什么要分库分表?首先回答一下为什么要分库分表,答案很简单:数据库出现性能瓶颈。用大白话来说就是数据库快扛不住了。数据库出现性能瓶颈,对外表现有几个方面:大量请求阻塞在高并发场景下,大量请求都需要操作数据库,导致连接数不够了,请求处于阻塞状态。SQL操作变慢如果数据库中存在一张上亿数据量的表,一条SQL没有命中索引会全表扫描,这个查询耗时会非常久。存储出现问题业务量剧增,单库数据量越来越大,给存储造成巨大压力。从机器的角度看,性能瓶颈无非就是CPU、内存、磁盘、网络这些,要解决性能瓶颈

  • 两位数乘法的速算方法(一)「建议收藏」

    两位数乘法的速算方法(一)「建议收藏」两位数乘法的速算方法一、范围讲的是两位自然数的相乘,即如何计算ABXCD的相乘结果,例如86X32。 二、ABXCD相乘的专业说法AB叫被乘数CD叫乘数三、原理设两位数分别是10A+B,10C+D,其乘积为S,根据多项式展开:S=(10A+B)X(10C+D)=10Ax10C+BX10C+10AXD+BXD。所谓速算,就是根据其中一些相等或者互补的关系,简化

发表回复

您的电子邮箱地址不会被公开。

关注全栈程序员社区公众号