为了账号安全,请及时绑定邮箱和手机立即绑定

二进制基础

难度入门
时长50分
学习人数
综合评分9.03
614人评价 查看评价
9.4 内容实用
8.9 简洁易懂
8.8 逻辑清晰

已采纳回答 / 慕粉3491563
不进行int类型转换也可以。像这样:arr[i]=(byte)((id>>i*8) & 0xff);

已采纳回答 / 慕莱坞9220042
应该是都这样,我这里也这样,不要在意这些细节,好好学习吧

已采纳回答 / 网虫小黄人
0xff是十六进制FF的表示方法,因为一个十六进制数字转换成二进制是四位,即F=1111,所以0xff占用一个字节 。也就是说是1B,1KB是1024B,&位运算

已采纳回答 / 释迷
我也是这样认为的,后面的就好了点!!

已采纳回答 / charsandrew
这里你理解错了,他说的是按位取反,一个位只有1或0;所以1取反是0,如果是按1这个数取反,应该是-2

已采纳回答 / 菲尔活该
public class Coner1 {public static byte[]int2bytes(int id){byte[] arr=new byte[4];//创建一个数组,长度为四arr[0]=(byte)((int)id>>0*8 & 0xff);//0xff报错Oxff cannot be resolved to a variablearr[1]=(byte)((int)id>>1*8 & 0xff);arr[2]=(byte)((int)id>...

已采纳回答 / 就不告诉你啦
是的,java中数字类型小的可以向类型大的自动转换

已采纳回答 / Lynn丶Hung
   二进制用补码进行运算。3的补码是00000011(注:最高位0表示为正数、若为1则表示为负数;正数的补码与原码、反码相同),1的补码是00000001;然后把这两个数相加(注:相加2进1)得到00000100(把它转化为原码还是00000100即为4)

已采纳回答 / 小城123
推荐你看下java从入门到精通,上面都有

已采纳回答 / Its_forever
8143转化为二进制数(00000000 00000000 00011111 11001111)第一个低八位(11001111):8143 >> 0*8(右移0位)与上0xff(11111111) 得出结果 为(11001111)。如果11001111是一个无符号的,转为十进制为207,如果是一个有符号的,转化为十进制为-49.以此类推。

已采纳回答 / 天启之魂
是什么类型 就是多少位 根据类型来的 int 是32

已采纳回答 / 惫懒sloth
在java中整数默认是int类型的,int 占4字节 4*8=32 bit,还要看你在位运算时,给的数是什么类型的,每种类型占得位数不一样
课程须知
小伙伴们注意啦!~本门课程前三章的内容可以零基础学习。第四、五章的内容在学习前需要了解Java的基础知识。
老师告诉你能学到什么?
通过课程的学习,您可以了解二进制的由来,掌握二进制和其他进制之间进行进制转换的方法,掌握如何进行位运算,为所有计算机课程的学习提供基础。

微信扫码,参与3人拼团

意见反馈 帮助中心 APP下载
官方微信
友情提示:

您好,此课程属于迁移课程,您已购买该课程,无需重复购买,感谢您对慕课网的支持!

本次提问将花费2个积分

你的积分不足,无法发表

为什么扣积分?

本次提问将花费2个积分

继续发表请点击 "确定"

为什么扣积分?

举报

0/150
提交
取消