A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 戴振良 黑马帝   /  2012-4-10 00:38  /  6263 人查看  /  2 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

我们给一个数负值,如int y=-4,这里可以加个负号,如果给他赋值个8进制或16进制的负数,怎么表示?int y= -0x5e  与y=-076是错误的,是吗?

2 个回复

倒序浏览
二进制的负数形式和8进制负数形式最高位都是1,十六进制的负数形式最高位都是f开头,没有负号的概念,
y=-0x5e和y=-76肯定是错误的,虚拟机都不知道你在表示什么,除了10进制带有负号外其他进制是不存在负号的,因为进制的负数形式都是采用补码的形式存在的。

评分

参与人数 1黑马币 +10 收起 理由
戴振良 + 10 明白了,谢谢!!

查看全部评分

回复 使用道具 举报
如果你要表示(16)0x5e和(8)76的相反数,那么你需要先将它们转换为二进制,然后转换成负数形式,然后分别转换为8进制和16进制,例如:

-6:其实就是6的二进制先取反再+1、即11...010.
取反:将二进制的1变成0,0变成1。
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马