收藏本站腾讯微博新浪微博

经典论坛

 找回密码
 注册

QQ登录

只需一步,快速开始

蓝色理想 最新研发动态 网站开通淘帖功能 - 蓝色理想插件 论坛内容导读一页看论坛 - 给官方提建议

论坛活动及任务 地图和邮件任务 请多用悬赏提问 热夏来袭,选一款蓝色理想的个性T恤吧!

手机上论坛,使用APP获得更好体验 急需前端攻城狮,获得内部推荐机会 论坛开通淘帖功能,收藏终于可以分类了!

搜索
查看: 1959|回复: 1

[AS3] 请教关于二进制运算的问题

[复制链接]
发表于 2008-11-4 10:25:53 | 显示全部楼层 |阅读模式
问题1:int类型的范围是-2^31到2^31-1 如2^31-1转换为二进制为31个1如果再这基础上再加1的话就会超出范围 那么是不是意味着正的int数据用二进制表示最多为31位?

问题2:当trace一个二进制数且为负数(int类型的数)的时候,输出一个负号 再加上一个数值的二进制,为啥是这样输出.当用到<<的时候如果移动的前一位为1且超出31位时则会出现超出范围的情况,这样输出时为一个负号 再加上这个数的二进制的补码和上面直接trace又不同了.当这个超出的数值用&int.Max_value时,又成了原码表现的形式.而这样做的结果只是改变符号位使之保持正号.难到说二进制由符号位和数值位组成,而符号位在数值位的最前面,当符号位改变后面的数值也进行改变,但是为啥直接trace一个负数的表现形式和哪个超出范围的表现形式又不同呢?

问题3:-1>>1是不会等于零,-1>>>1会等于int.max_value这又是为啥?

[[i] 本帖最后由 passi0n 于 2008-11-4 11:05 编辑 ]
发表于 2008-11-6 11:44:10 | 显示全部楼层
............ 好好看看文档吧
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

QQ|小黑屋|Archiver|手机版|blueidea.com ( ICP05002321 )  

GMT+8, 2019-7-24 12:50 , Processed in 0.077928 second(s), 9 queries , Gzip On, Memcache On.

Powered by Discuz! X3.2 Licensed

© 2001-2013 Comsenz Inc.

快速回复 返回顶部 返回列表