原码反码补码的相互转换_补码转化为反码

原码反码补码的相互转换_补码转化为反码原码反码补码的相互转换原码反码补码的转换还是比较简单基础的问题。之前学习java的时候就学过,后来忘记了,忘记了!!!,后来学了位移运算符,左移右移无符号右移之后就由有点儿懵了。原码,反码,补码二进制中第一位是符号位,0表示正数,1表示负数。以八位二进制数为例。原码十进制数正1的二进制原码[+1]原=00000001十进制数负1的二进制原码[-1]原…

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

Jetbrains全家桶1年46,售后保障稳定

原码 反码 补码的相互转换

原码 反码 补码的转换 还是比较 简单基础的问题。之前学习java的时候就学过,后来忘记了,忘记了!!!,后来学了位移运算符,左移 右移 无符号右移 之后就由有点儿懵了。

原码,反码,补码
二进制中第一位是符号位,0表示正数,1表示负数。
以八位二进制数为例。

  1. 原码
    十进制数正1的二进制原码 [+1] 原 = 0000 0001
    十进制数负1的二进制原码 [-1] 原 = 1000 0001
    第一位是符号位. 因为第一位是符号位, 所以
    8位二进制数的取值范围:[1111 1111 , 0111 1111]
    对应十进制 [-127 , 127] 范围。

  2. 反码
    反码的表示方法是:
    1.正数的反码是其本身
    2.负数的反码是在其原码的基础上, 符号位不变,其余各个位取反.
    [+1] = [0000 0001]原 = [0000 0001]反
    [-1] = [1000 0001]原 = [1111 1110] 反

  3. 补码
    补码的表示方法是:
    正数的补码就是其本身
    负数的补码是在其原码的基础上, 符号位不变, 其余各位取反, 最后+1. (即在反码的基础上+1)
    [+1] = [0000 0001]原 = [0000 0001]反 = [0000 0001]补
    [-1] = [1000 0001]原 = [1111 1110]反 = [1111 1111]补

  • 总结
    在知道一个数原码的情况下:
    正数:反码,补码 就是本身自己
    负数:反码是高位符号位不变,其余位取反。补码:反码+1

练习
-A(二进制数)原码转为补码 ,先减一再按位取反 或者 先按位取反再加1 。
-A (二进制数)补码转化为原码 :按位取反加1 减一再按位取反 注意第一位符号位不变。
符号位就是第一位,1是负数,0是正数。 不表示数值的大小
例子:
问:4补码为:0100 -4补码为:1100 ?
答:-4原码是 1000 0100 ; 反码(原码符号位不变,按位取反)是1111 1011 ;补码(反码加一)是 1111 1100
八位二进制中(假设是八位的):4 补码为:0000 0100 -4补码为:1111 1100
详解:
-4原码 转化为-4的补码过程 补码的转化
方法一: 1000 0100 减一 得1000 0011 按位取反得1111 1100
方法二 :1000 0100 按位取反得1111 1011 加一得 1111 1100
-4的补码转化为原码 按位取反但是符号位不变
方法一:1111 1100 按位取反 得 1000 0011 加一 0000 0100 取负数 得-4
方法二:1111 1100减一得 1111 1011 按位取反 1000 0100 取负数 得-4
记不住得话,记住,补码=原码按位取反再+1 ,原码=补码减一再按位取反 。
重点:
1.正数的,原码反码补码都相同。 以上规则是对于负数而言的。
2.正数与负数的原码 只差符号位的值,不一样 正数是0 负数是1 .

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

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/223083.html原文链接:https://javaforall.net

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • C语言提供的将字符串转换为整数的函数_java整型转字符串

    C语言提供的将字符串转换为整数的函数_java整型转字符串本文主要介绍C++语言中,整型转换为字符串类型的方法。1使用to_string函数在c++11标准中,我们可以使用to_string函数,将整型转换为字符串类型。1.1to_string函数介绍to_string函数的用法如下:stringto_string(intval);stringto_string(longval);stringto_string(longlongv…

    2022年10月10日
    3
  • Android listview使用[通俗易懂]

    Android listview使用[通俗易懂]安卓listview使用MainActivitypublicclassMainActivityextendsAppCompatActivity{privateListViewlistView;privateMyAdapteradapter;privateList<Person>list;@Overridepro…

    2022年7月17日
    13
  • 阿里编程规范 pdf_阿里前端开发规范

    阿里编程规范 pdf_阿里前端开发规范阿里编程规范及阿里Java开发规约插件AlibabaJavaCodingGuidelines统一规范标准将有助于提高行业编码规范化水平,帮助行业人员提高开发质量和效率、大大降低代码维护成本。2017年年初,首次公开了《阿里巴巴Java开发手册》,自从第一个版本起,倍受业界关注。为了让开发者更加方便、快速的将规范推动并实行起来,阿里巴巴基于手册内容,研发了一套自动化的IDE检测插件(…

    2025年7月4日
    2
  • 磁盘管理不显示新硬盘_动态磁盘改为基本磁盘

    磁盘管理不显示新硬盘_动态磁盘改为基本磁盘文章目录一.磁盘简介1.磁盘设备的命名2.磁盘的分区方式二.管理磁盘1.查看磁盘2.创建分区3.创建文件系统——格式化4.挂载(临时)5.查看挂载信息6.扩展分区7.交换分区Swap三.逻辑卷LVMLinux08:磁盘管理相关一.磁盘简介1.磁盘设备的命名CentOS 7中IDE(并口)SATA(串口)——目前更适用/dev/sda/dev/sdb/dev是一个专门存放设备的目录,s代表sata就是串口,d代表disk磁盘,a代表第一块,b代表第二块…2.磁盘的分区方式

    2022年8月9日
    7
  • c语言createthread函数用法,CreateThread函数「建议收藏」

    c语言createthread函数用法,CreateThread函数「建议收藏」当使用CreateProcess调用时,系统将创建一个进程和一个主线程。CreateThread将在主线程的基础上创建一个新线程,大致做例如以下步骤:1在内核对象中分配一个线程标识/句柄,可供管理,由CreateThread返回2把线程退出码置为STILL_ACTIVE。把线程挂起计数置13分配context结构4分配两页的物理存储以准备栈。保护页设置为PAGE_READWRITE。第2页设为PA…

    2022年7月11日
    23
  • ios手游游戏辅助挂机工具_ios挂机RPG游戏大全_iPhone挂机RPG类手游排行榜_ios挂机RPG类手游精选推荐_ios挂机RP类手游下载…

    ios手游游戏辅助挂机工具_ios挂机RPG游戏大全_iPhone挂机RPG类手游排行榜_ios挂机RPG类手游精选推荐_ios挂机RP类手游下载…《康熙皇帝养成计划》是一款原创角色养成挂机手游,游戏以少年复仇为主线,融合勇闯神龙、秘境探险、帮派结盟、培养豪杰、金科演武…在《魔王村长和杂货店》中你将置身于一个日式RPG的幻想大陆之中,扮演一个看似寻常的村庄村长。宅男逆袭成大神剧情,又可与心仪校花共同谱写高校恋爱物语,还能体验玄幻修真与灵异兼备的乐趣,革新的游戏体能全面开启。《天天挂奇迹》是一款超畅快刺激的挂机RPG类游戏,游戏以经典《奇迹…

    2022年6月2日
    41

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

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