一个小疑问(已解决)

2023-05-16

本篇涉及计算机基础知识:原码、补码、java的字节

今天看孙卫琴老师的《JAVA面向对象编程 第2版》时,有一个例子:

byte b = (byte)129

b = -127

解释是:
byte类型的取值范围在(~128-127)。(byte)表示把129强制转换为byte类型。byte类型在内存中只占一个字节(8位),而129的二进制形式为:0000 0000 0000 0000 0000 0000 1000 0001(int类型占4个字节)。进行强制类型转换,截取后8位,结果为1000 0001。而byte类型的1000 0001表示-127。

为什么是-127?

众所周知,计算机中有原码、补码、反码。了解计算机的历史后,刚开始只有原码。分正负号表示。但对于0,既有0000 0000(+0),又有1000 0000(-0)。计算机中不可能用两个不同二进制数来表示同一个整数。所以就出现了补码。补码可以解决这个问题。更深入了解的可以直接去搜。
而对于补码,正数的补码是其本身,负数的补码是它的绝对值取反再+1。所以对于-127,它的绝对值的二进制表示为0111 1111,每个位都取反,是1000 0000,然后加上1,就变成了1000 0001。

怎么从补码得到原码,或怎么从-127得到它的原码表示?

如果该补码的符号位为0,表示正数,补码和原码相同。
如果该补码的符号位为1,表示负数,按照原码转补码的方式,即可从补码转原码。
比如上面例子反过来,已知补码是1000 0001,那么首先可知它是负数。取绝对值为0000 0001,按位取反为1111 1110,然后加上1,就变成了1111 1111。
完。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

一个小疑问(已解决) 的相关文章

  • PID概述以及在无人机中的应用

    PID控制是将误差信号的比例P xff0c 积分I xff0c 微分D通过线性组合构成控制量 xff0c 称之为PID控制 但是在很多情况下 xff0c 往往不一定需要三个单元 xff0c 但是比例单元是必不可少的 PID控制器难点在于参数
  • PID连续控制算法的表达式以及C语言实现

    1 数字 xff08 离散 xff09 PID控制算法的表达式 xff1a 将PID调节器离散化 xff0c 用差分方程来代替连续系统的微分方程 xff0c 分为位置式和增量式两类 重点理解概念如下 xff1a a xff09 基本偏差e
  • 简单常用滤波算法C语言实现

    1 限幅滤波算法 xff08 程序判断滤波算法 xff09 方法解析 xff1a 根据经验判断 xff0c 确定两次采样允许的最大偏差值 xff08 设定为A xff09 xff0c 每次检测到新值时判断 xff1a 如果本次值与上次值之差
  • Nuttx的源码构建和编译

    下载源码 sudo mkdir Nuttx cd Nuttx Nuttx xff1a git clone https bitbucket org nuttx nuttx gitapps xff1a git clone https bitbu
  • ZMQ简介

    ZMQ xff08 MQ ZeroMQ 0MQ xff09 看起来像是一套嵌入式的网络链接库 xff0c 是网络通信中新的一层 xff0c 介于应用层和传输层之间 xff08 按照TCP IP划分 xff09 xff0c 其是一个可伸缩层
  • ubunut安装stlink

    在ubuntu上面的stlink驱动的安装 依赖包的安装 sudo apt get install libusb 1 0sudo apt get install cmakesudo apt get install libgtk 3 dev
  • Nuttx程序测试

    前面两篇文章我们讲述了如何编译nuttx和ubuntu下stlink的安装 现在我们继续往下测试程序 硬件环境 stm32f407discovery软件环境 ubuntu14 04 43 vim 我们首先进入到nuttx tools目录下执
  • 两种四轴PID讲解

    参考资料 xff1a 爱无人机论坛 单级PID xff1a PID算法属于一种线性控制器 xff0c 这种控制器被广泛应用于四轴上 要控制四轴 xff0c 显而易见的是控制它的角度 xff0c 那么最简单 xff0c 同时也是最容易想到的一
  • 麒麟系统开机自启的实现方式

    方法 xff1a 利用Linux的 desktop文件实现开机启动 xff0c desktop文件位于在 etc xdg autostart目录下 举例 在 etc xdg autostart 目录下建立一个 test desktop文件
  • ifconfig与 ip addr命令详细

    文章目录 前言一 如何查看机器的IP地址二 网卡信息详解1 网卡名称2 网络设备状态标识3 IP地址4 MAC地址 三 ifconfig与 ip addr区别 前言 本文记录在linux系统下如何查看ip信息 网卡状态等信息以及简要说明if
  • Linux网卡ifcfg网卡配置项详解

    前言 由于在工作中涉及到服务器网卡的适配 xff0c 算是linux新手 xff0c 本次记录下linux网卡ifcfg exx配置项含义说明 xff0c 以下是某款终端下centos 7 5系统自动生成的网卡配置内容 xff1a span
  • Determining IP information for eth问题解决

    前言 在Linux网卡ifcfg网卡配置项详解文章中提到一个BOOTPROTO 61 配置项 它的意思是指网卡启动时获取ip的方式 xff0c 可以是dhcp或者静态ip 方式 xff0c 如果设置为none说明是不指定ip设置方式 一 问
  • 回首2013,展望2014

    此刻值此2013年末 xff0c 明天便是元旦 近日浏览CSDN论坛时 xff0c 发现有许多的坛友都在写2013年度总结 xff0c 博客作为个人的名片 xff0c 也决定开始尝试写博客 xff0c 我的第一篇博客就是关于2013年度总结
  • 关于vector大小(size)和容量(capacity)总结

    操作大小的函数 在Vector容器中有以下几个关于大小的函数 方法效果size 返回容器的大小empty 判断容器是否为空max size 返回容器最大的可以存储的元素capacity 返回容器当前能够容纳的元素数量 例子一 xff1a 该
  • inet_addr 和inet_ntoa函数作用

    我们使用socket进行通信的时候 xff0c 我们需要指定三个元素 xff1a 通信域 xff08 地址族 xff09 IP地址 端口号 xff0c 这三个元素由SOCKADDR IN结构体定义 xff0c 为了简化编程一般将IP地址设置
  • 使用C语言完成单片机的底层配置操作

    整体概貌 单片机型号 xff1a C8051F020 技术等级 xff1a 不懂底层编程的菜鸟 写作目的 xff1a 加深对底层的了解 xff0c 方便下一步对FPGA底层配置的实现 编写内容 xff1a 1 定时器的定时 2 串口波特率的
  • windows7触屏操作API

    每当用户触摸触敏式 Windows 7 设备时 xff0c Windows 7 多点触控平台都会向您的应用程序发送手势消息 WM GESTURE 这是现成的免费行为 xff0c 如果您希望停止接收此类消息 xff0c 则需要选择退出 手势被
  • visual studio中头文件和库文件路径设置

    在程序开发中 xff0c 很多时候需要用到别人开发的工具包 xff0c 如OpenCV和itk 一般而言 xff0c 在vs中 xff0c 很少使用源文件 xff0c 大部分是使用对类进行声明的头文件和封装了类的链接库 xff08 静态li
  • LNK2001: 无法解析的外部符号的几种情况

    一般来说 xff0c 我们引用第三方库时 xff0c 需要进行指定依赖项配置 xff0c 若没有进行相关配置 xff0c 则编译器会出现 LNK2001 无法解析的外部符号 错误 这个是最常见的问题 xff0c 具体步骤 xff1a 项目
  • C++11向线程函数传递参数

    template span class token operator lt span class Function span class token punctuation span class span class token punct

随机推荐

  • C++11之std::future对象使用说明

    std future介绍 在前面几篇文章中基本都用到thread对象 xff0c 它是C 43 43 11中提供异步创建多线程的工具 但是我们想要从线程中返回异步任务结果 xff0c 一般需要依靠全局变量 xff1b 从安全角度看 xff0
  • delete 和 delete[]真正区别

    我们通常从教科书上看到这样的说明 xff1a delete 释放new分配的单个对象指针指向的内存 delete 释放new分配的对象数组指针指向的内存 那么 xff0c 按照教科书的理解 xff0c 我们看下下面的代码 xff1a spa
  • 【转】使用Android MediaCodec 硬解码延时问题分析

    最近做项目用到Android native层的MediaCodec的接口对H264进行解码 xff0c 通过在解码前和解码后加打印日志 xff0c 发现解码耗时200多ms xff0c 和IOS的解码耗时10ms相比实在是延时好大 后来研究
  • 数据异常检测

    数据下载 xff1a 链接 xff1a https pan baidu com s 1ePMpmTBeoECBFFgPZQrPAg 提取码 xff1a qkg2 两维数据异常检测 xff08 使用高斯原始模型 xff09 代码 span c
  • 数据通信保镖---链路聚合

    目录 前言 一 链路聚合技术产生背景 二 链路聚合基本原理 三 链路聚合手工模式 四 LACPDU 五 活动接口及链路选举步骤 六 负载分担 七 负载分担模式 八 配置命令 1 创建链路聚合组 前言 随着社会迅速的发展 xff0c 网络业务
  • BGP基础讲解

    文章目录 一 BGP起源二 BGG基本概念与注意事项三 BGP原理概述四 BGP路由条目的来源 宣告 引入 聚合五 通告原则 重要 xff01 xff01 xff01 六 相关配置命令 一 BGP起源 网络不断扩大 xff0c 为了方便管理
  • LNK1107 文件无效或损坏: 无法在 0xBE2 处读取

    LNK1107 文件无效或损坏 无法在 0xBE2 处读取 LNK1107 文件无效或损坏 无法在 0xBE2 处读取 4 15test D ITK res lib libhdf5 settings 1 的问题解决 解决 解决办法 xff1
  • Linux开机卡在/dev/sda1:clean,***files,***blocks解决方案

    Linux开机卡在 dev sda1 xff1a clean xff0c files blocks解决方案
  • 未能初始化 成员 “itk::ImageIOBase::UNKNOWNPIXELTYPE“

    如题 xff0c 在联合VTK ITK Qt编译的时候遇到了 xff0c 原因 xff1a 没有在CMakeLists txt中加ITK相关代码 xff0c 因为是直接拿别人的工程来用 xff0c 改正 xff1a 添加ITK相关代码 xf
  • 2021-09-17

    https d2lzkl7pfhq30w cloudfront net pub archive epel 6 x86 64 以上是epel的新地址
  • 蓝桥杯2021 砝码称重 动态规划(JAVA)

    题目 你有一架天平和N个砝码 xff0c 这N个砝码重量依次是W1 xff0c W2 xff0c WN 请你计算一共可以称出多少种不同的重量 xff1f 注意砝码可以放在天平两边 输入格式 输入的第一行包含一个整数N 第二行包含N个整数 x
  • SpringBoot连接数据库报空指针异常

    加了 64 SpringBootTest和 64 Test还是报空指针异常 原因 64 Test导入的包不对 原来是 span class token keyword import span span class token namespa
  • 解决80端口被占用问题

    解决80端口被占用问题 1 win 43 r xff0c 输入cmd xff0c 回车 2 命令行输入 netstat ano 3 前几行本地地址为0 0 0 0 80 xff0c 每一行的最后对应一个pid号 xff0c 如下图中的215
  • go 学习中遇到的问题及解决

    Go学习中遇到的若干问题及解决 1 go test进行单元测试时 xff0c 出现undefined方法或者command line arguments build failed 解决方案问题解决参考 2 go操作Mysql2 1 将表名作
  • IDEA中将pom.xml中的依赖一起打jar包的问题

    IDEA中将依赖一起打进jar包 试过了其它和很多方法 xff0c 很多都没用 试了下面的内容 xff0c 就成功了 1 在pom xml文件中加入如下内容 xff1a span class token tag span class tok
  • go字符串

    go中的字符串 1 字面量 操作符 级联 1 1 字面量 字符串字面量使用双引号 xff08 xff09 或反引号 xff08 96 96 xff09 创建 如 text1 span class token operator 61 span
  • go中return返回的相关问题

    return go语言中return语句可以带返回值 xff0c 也支持不带返回值 下面是不带返回值的一些问题 1 前言 下面这段话来自 Go语言程序设计 p146 可以在有一到多个命名返回值的函数中 xff0c 写无需声明返回值的retu
  • Go中整型类型及其范围

    类型取值范围int依赖平台 xff0c 可能是int32或int64int8 128 127uint80 255int16 32 768 32 767uint160 65 535int32 2 147 483 648 2 147 483 6
  • 博士怎么读文献?

    https www zhihu com question 37781628知乎上的问答 无论是国内外的博士在写论文的时候都需要阅读大量的文献 xff0c 而这些文献一般都多而杂 xff0c 如果没有一定的方法一定会觉得无从下手 那么读这些文
  • 一个小疑问(已解决)

    本篇涉及计算机基础知识 xff1a 原码 补码 java的字节 今天看孙卫琴老师的 JAVA面向对象编程 第2版 时 xff0c 有一个例子 xff1a span class token keyword byte span b span c