社区
Java SE
帖子详情
JAVA中为何~1等于-2,~0等于-1呢????不懂这是为什么。
pop3696
2007-02-26 10:42:53
刚学,不懂
...全文
2044
8
打赏
收藏
JAVA中为何~1等于-2,~0等于-1呢????不懂这是为什么。
刚学,不懂
复制链接
扫一扫
分享
举报
写回复
配置赞助广告
用AI写文章
8 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
pop3696
2007-02-27
打赏
举报
回复
to coldwindtang(风)
谢谢
「已注销」
2007-02-26
打赏
举报
回复
2
这个问题涉及到计算机内部的编码。
对于整数,计算机内部用最高位表示符号位,0表示为正,1表示为负。
对于负数,为了便于计算,计算机用补码来表示其值。
已经一个数的补码,要知道其值分两种情况:
1:符号位是0,正数,所以后面的二进制位则表示大小,即正数的原码=其补码。如1表示出来则为00000001(我这里用八位来表示,也可以用16位或32位)
2:符号位是1,负数,这时候需要把后面的数取反再加一(要问为什么?查一下资料吧,可以根据补码的特性推出来),所以11111110表示的数是1111110取反为0000001,再加一,则为0000002。算上符号位,就是-2。
再让我们回到楼主的问题。
1的二进制表示为:00000001,则~1为11111110,根据补码的转换方法,我们就可以算出11111110表示的数是-2.
同理:~0 = -1
Gekkou
2007-02-26
打赏
举报
回复
以int型为例:
~1 = 11111111 11111111 11111111 11111110 = -2
~0 = 11111111 11111111 11111111 11111111 = -1
lixiaoxue85
2007-02-26
打赏
举报
回复
LZ把代码贴出来 取非,结果只有0和1吧 着么可能出来-2,LZ看错了?
expter
2007-02-26
打赏
举报
回复
没懂你什么意思
pop3696
2007-02-26
打赏
举报
回复
说错,是非操作(~),~1因该是0啊怎么是-2 ??
pop3696
2007-02-26
打赏
举报
回复
对1和0分别取反。
mingxuan3000
2007-02-26
打赏
举报
回复
不明白说什么
网络协议 8 - TCP协议(上)
上次说了“性本善”的 UDP 协议,这哥们秉承“网之初,性本善,不丢包,不乱序”的原则,徜徉在网络世界
中
。 与之相对应的,TCP 就像是老大哥一样,了解了社会的残酷,变得复杂而成熟,秉承“性恶论”。它认为网络环境是恶劣的,丢包、乱序、重传、拥塞都是常有的事儿,一言不合可能就会丢包,送达不了,所以从算法层面来保证可靠性。 TCP 包头格式 老规矩,咱们先来看看 TCP 头的格式...
网络协议 8 - TCP协议(上):性恶就要套路深
系列文章: 网络协议 1 - 概述 网络协议 2 - IP 是怎么来,又是怎么没的? 网络协议 3 - 从物理层到 MAC 层 网络协议 4 - 交换机与 VLAN:办公室太复杂,我要回学校 网络协议 5 - ICMP 与 ping:投石问路的侦察兵 网络协议 6 - 路由协议:敢问路在何方? 网络协议 7 - UDP 协议:性善碰到城会玩 上次说了“性本善”的 UDP 协...
ROS2智能巡检机器人开发:重构数据流工作流
ROS2并非传统机器人软件的简单升级,而是一个以DDS为底座、以数据流为核心的实时协作系统。理解其QoS策略、CallbackGroup调度与生命周期管理,是构建可靠巡检系统的基础。本文聚焦智能巡检机器人在ROS2 Humble环境下的工程落地,深入解析Gazebo Sim物理仿真、rviz2数据诊断、Navigation2可裁剪决策流水线等关键模块,并强调从仿真到实机的数据流校准与闭环验证——尤其关注激光扫描频率稳定性、TF变换时间同步、use_sim_time参数一致性等高频故障点,为工业级巡检系统提供
网络协议开发必看:用__attribute__((aligned(8)))解决TCP头部的跨平台对齐问题
本文深入探讨了在网络协议开发
中
,如何利用GCC/Clang的__attribute__((aligned(8)))属性解决TCP头部等结构体在不同硬件平台(如x86与ARM)上的内存对齐差异问题。通过对比packed属性的弊端,文章详细阐述了aligned属性在确保数据布局一致性和维持访问性能方面的优势,并提供了实战代码示例与性能测试数据,是解决跨平台通信数据错位问题的关键指南。
基于 agentic-awesome-skills 的 Electron 桌面应用模板实战:从 Vite 脚手架到跨平台打包
本文以 agentic-awesome-skills(AAS)仓库
中
app-builder 技能的 `electron-desktop` 模板为核心,系统讲解如何使用 Electron 28+、React 18、TypeScript、Tailwind CSS 与 Vite 搭建一套安全、类型安全的跨平台桌面应用骨架。读完本文,你将掌握三进程架构的职责划分、`contextBridge` 与 `c
Java SE
62,620
社区成员
307,251
社区内容
发帖
与我相关
我的任务
Java SE
Java 2 Standard Edition
复制链接
扫一扫
分享
社区描述
Java 2 Standard Edition
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章