怪了,JS做位运算,怎么结果不对?

daiwoo_wang 2019-05-08 02:07:17
已知某个字节是0x14,代码如下
var b = 0x14;
现在尝试把这个字节转成BCD码,也就是16进制的14要变成10进制的14,
var s = ((b >> 0x04) &0x0f) * 10; 这个结果是对的,计算得到10,
var s = b & 0x0F; 这个结果也是对的,得到数字4
但是,s = b & 0x0F + ((b >> 0x04) & 0x0F) * 10,这个结果得到的是16,真是怪了
...全文
224 1 打赏 收藏 转发到动态 举报
写回复
用AI写文章
1 条回复
切换为时间正序
请发表友善的回复…
发表回复
天际的海浪 2019-05-08
  • 打赏
  • 举报
回复
s = (b & 0x0F) + ((b >> 0x04) & 0x0F) * 10

87,993

社区成员

发帖
与我相关
我的任务
社区描述
Web 开发 JavaScript
社区管理员
  • JavaScript
  • 无·法
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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