JAVA中为何~1等于-2,~0等于-1呢????不懂这是为什么。

pop3696 2007-02-26 10:42:53
刚学,不懂
...全文
1747 8 打赏 收藏 转发到动态 举报
写回复
用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
  • 打赏
  • 举报
回复
不明白说什么
内容概要:本文详细介绍了bq769x0系列电池监控芯片嵌入式调度程序(Scheduler)的核心功能与工作机制。调度程序作为数字核心模块,负责协调ADC电压测量、库仑计数、被动均衡及堆叠通信等关键操作的时间节拍,确保系统在250ms周期内有序运行。文章分析了在不同工作模式下(如均衡开启或关闭时)ADC测量窗口的调度策略,阐述了库仑计数器如何利用250ms积分周期进行电荷累计,并说明了多芯片堆叠架构数据传输的时序安排与主从通信机制。此外,还提供了温度采样、故障检测延迟以及寄存器比较等方面的实现细节。; 适合人群:从事电池管理系统(BMS)设计的电子工程师、嵌入式系统开发者及硬件研发技术人员,具备模拟/数字电路基础和IC应用经验者更佳。; 使用场景及目标:①优化电池组的被动均衡算法设计;②精确掌握ADC采样与库仑计数的同步机制以提升测量精度;③构建高效可靠的多芯片级联BMS系统,理解堆叠通信时序与故障响应延迟;④指导实际项目对电压、电流、温度监测的时序配置与调试。; 阅读建议:此技术报告侧重于内部时序控制逻辑,建议结合bq769x0的数据手册与实际硬件平台对照阅读,重点关注调度表(如Table 1和Table 2)与波形图(如Figure 3~8),并通过示波器观测关键信号时序以验证理论分析。

62,628

社区成员

发帖
与我相关
我的任务
社区描述
Java 2 Standard Edition
社区管理员
  • Java SE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧