c语言位运算取反_c语言取反程序

c语言位运算取反_c语言取反程序先说结论假设x为signedint,也就是说它的补码表示中第一位表示符号(1:负;0:正),那么~x=-(x+1)证明计算机内部使用补码表示,则问题相当于求证:当x为signedint时,(~x)补=[-(x+1)]补(0)证明:因为补码有个规律:(x+y)补=(x)补+(y)补,所以:[-(x+1)]补=[(-x)+(-1)]补=(-x)补+(-1)补要证(~x)补=[-(x+1)…

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

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

先说结论

假设x为signed int,也就是说它的补码表示中第一位表示符号(1:负;0:正),那么~x=-(x+1)

证明

计算机内部使用补码表示,则问题相当于求证:当x为signed int时,(~x)补=[-(x+1)]补 (0)

证明:

因为补码有个规律:(x+y)补=(x)补+(y)补,所以:

[-(x+1)]补

= [(-x)+(-1)]补

= (-x)补 + (-1)补

要证(~x)补=[-(x+1)]补,只需要证(~x)补-(-x)补=(-1)补 (1)

考虑到:

(~x)补-(-x)补

=(~x)补+(-(-x)补) (2)

(-x)补+(-(-x))补

= [(-x) + (-(-x))]补

= [(-x) + x ]补

= 0

也就是说-(-x)补=(-(-x))补 (3)

把(3)带入(2),得到:

(~x)补-(-x)补

= (~x)补+(-(-x))补

= [(~x) + x ]补

= [1111…11]补 (所有位都为1)

= [1111…10]反 (最后一位为0,其它位都为1)

= [1000…01]原 (第一位和最后一位为1,其它位都为0)

= (-1)补

也即(1)得证,因而(0)成立。证毕。

原文:https://www.cnblogs.com/zjutzz/p/10646760.html

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

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

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

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

(0)


相关推荐

  • 秒懂JSONArray和JSONObject的区别和使用

    秒懂JSONArray和JSONObject的区别和使用一.JSONObject是什么?就是对象json;之前在秒懂json中说过,{}表示对象,所以JSONObject就是:{"name":"tom"}同时,这里的对象Json通过添加数组json可以变成对象数组json:{"name":["tome","kate"]}例如:JSONObjectjsono=newJSONObject();JSONArray jsona=…

  • linux下ll命令_ubuntu bash命令

    linux下ll命令_ubuntu bash命令ubuntull命令1、用过Redhat或者Centos的朋友应该很熟悉ll这个命令,就相当于ls-l,但在Ubuntu中要么不能用,要么会显示隐藏文件,看起来很烦。2、严格来说ll不是一个命令,只是命令的别名而已。很多Linux用户都使用bashshell,对普通用户来说用得最多的就是命令补全(按tab键)和alias(别名)功能。Ubunt…

  • 排查是什么意思_nacos有了为什么要用dubbo

    排查是什么意思_nacos有了为什么要用dubbo当Dubbo遇上Arthas:排查问题的实践

  • Vue项目实战 —— 哔哩哔哩移动端开发—— 第一篇

    Vue项目实战 —— 哔哩哔哩移动端开发—— 第一篇撑着下班前半小时我用vue写《哔哩哔哩项目》移动端、新手还在哭、老鸟一直在笑。。。技术选型Vue2,技术栈有axios、Vh等,下班过来敲哈哈

  • Java Bean 简介及其应用

    Java Bean 简介及其应用Bean的中文含义是“豆子”,顾名思义JavaBean是一段Java小程序。JavaBean实际上是指一种特殊的Java类,它通常用来实现一些比较常用的简单功能,并可以很容易的被重用或者是插入其他应用程序中去。所有遵循一定编程原则的Java类都可以被称作JavaBean。 一.JavaBean技术概述       JavaBean是基于Java的组件模型,由属性、方法和事件3部

发表回复

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

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