进制转换

进制转换

二进制数左移一位相当于数位上的数值乘以2,右移一位相当于数位上的数值除以2
java中,>>为有符号右移,>>>为无符号右移,<<为有符号左移,不存在无符号左移运算符。

^属于二进制位运算符 代表异或的意思
运算时两个二进制数对应位的数不同时结果为1 否则为0
所以1100^1010的结果应该是0110

十六进制是由4位二进制组成的,进制的转换是不影响数制的,因此转换的时候应该是把二进制数从右往左来计算,每4位来组合成一个十六进制数,每4位数字都按照8421的格式编码,然后累加求和就是对应的十六进制数,因此,二进制数划分为:11 1101,前两位按照8421排码加和为2+1=3,后四位按照8421排码加和为8+4+1=13=D,组合在一起就是3D

负数二进制转换为十进制需要先取反再加1

每位十六进制数是需要四位二进制数来表示,因此四位二进制则是对应一位十六进制数。

十六进制数7F可以先转为对应的二进制数
即7(十六)对应0111(二)  F(十六)对应1111(二)  所以7F(十六)对应0111 1111(二)
再转为十进制计算为
0*128+1*64+1*32+1*16+1*8+1*4+1*2+1*1=127

~属于二进制位运算符 代表非的意思
计算方法为将每一位上0变为1 1变为0
本题中要计算的是十进制数36的非运算值
首先先将36(十)转为0010 0100(二) 然后进行运算得到结果1101 1011(二)
然后再将此二进制数转为十进制
由于我们这里计算的是8位二进制数 最高位为第8位
此时最高位数字为1 是一个负数
要想算出十进制负数的值可以进行取反+1运算先算出对应的十进制正数的值
即1101 1011取反+1后变为 0010 0101 则对应的十进制数为37
所以最终~36的结果应该是-37

二进制数(0001 1011)转成十进制数是,二进制数是用0和1表示的一组数字,二进制数每一位实际代表的数是当前位上的数字乘以当前位的位权,每一位的位权是2的n次幂,n是数字是从右往左数第几位,计数的时候是从0开始数。所以24+23+21+20=16+8+2+1=27,

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值