漫漫何其多1235 2024-03-19 23:19 采纳率: 80%
浏览 2
已结题

详细过程,#Scala

①-5>>2 和-5>>>2
②var a=2 ; var b=3 交换a和b的值
③5 | 9
④5^9
⑤~(-5)
⑥5<<2和-5<<2

  • 写回答

1条回答 默认 最新

  • 码农阿豪@新空间代码工作室 Java领域优质创作者 2024-03-19 23:19
    关注
    让阿豪来帮你解答,本回答参考chatgpt3.5编写提供,如果还有疑问可以评论或留言
    ①-5>>2表示将-5右移2位,得到-2,其中负数用补码表示。-5的原码为10000101,补码为11111011,右移两位后变为11111110,即-2的补码。-5>>>2表示将-5无符号右移2位,得到1073741810(32位系统),其中负数的二进制补码与其原码相同。因此,-5的二进制补码为11111111111111111111111111111011,无符号右移两位后为00111111111111111111111111111110,即1073741810。 ②交换a和b的值可以使用中间变量的方式,代码如下: var a = 2; var b = 3; var temp = a; a = b; b = temp; 执行后,a的值为3,b的值为2。 ③5 | 9表示将5和9的二进制表示进行或运算,得到13。5的二进制表示为101,9的二进制表示为1001,进行或运算后得到1101,即十进制的13。 ④5^9表示将5和9的二进制表示进行异或运算,得到12。5的二进制表示为101,9的二进制表示为1001,进行异或运算后得到1100,即十进制的12。 ⑤~(-5)表示对-5进行取反运算,得到4。-5的二进制补码为11111011,取反后得到00000100,即十进制的4。 ⑥5<<2表示将5左移两位,得到20。5的二进制表示为101,左移两位后得到10100,即十进制的20。-5<<2表示将-5左移两位,得到-20。-5的二进制原码为10000101,左移两位后变为00010100,即十进制的20的补码,因此结果为-20。5<<-2表示将5左移-2位,得到0。负数左移需要先将其转为补码进行运算,此时5的补码为00000101,左移两位后得到00000001,即十进制的1。-5<<-2表示将-5左移-2位,得到0。同样需要将-5转为补码进行运算,其补码为11111011,左移两位后变为11111110,即补码表示的-2,转为原码即为-2。左移-2位相当于右移2位,因此得到0。
    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论

报告相同问题?

问题事件

  • 系统已结题 3月28日
  • 已采纳回答 3月20日
  • 创建了问题 3月19日

悬赏问题

  • ¥15 35114 SVAC视频验签的问题
  • ¥15 impedancepy
  • ¥15 在虚拟机环境下完成以下,要求截图!
  • ¥15 求往届大挑得奖作品(ppt…)
  • ¥15 如何在vue.config.js中读取到public文件夹下window.APP_CONFIG.API_BASE_URL的值
  • ¥50 浦育平台scratch图形化编程
  • ¥20 求这个的原理图 只要原理图
  • ¥15 vue2项目中,如何配置环境,可以在打完包之后修改请求的服务器地址
  • ¥20 微信的店铺小程序如何修改背景图
  • ¥15 UE5.1局部变量对蓝图不可见