java int怎么位移取前几位数字
答案:6 悬赏:60 手机版
解决时间 2021-02-15 05:25
- 提问者网友:杀生予夺
- 2021-02-14 08:59
java int怎么位移取前几位数字
最佳答案
- 五星知识达人网友:人類模型
- 2021-02-14 10:39
思路:直接用Integer类的bit运算操作。
如果想得到一个n位数的第k位,写法如下:
(n & ( 1 << k )) >> k
内部实现就是:
1、创建一个mask,把1左移k位
int mask = 1 << k;
2、然后把n右移mask位就是想要得到的结果
int masked_n = n & mask;
int thebit = masked_n >> k;
如果想得到一个n位数的第k位,写法如下:
(n & ( 1 << k )) >> k
内部实现就是:
1、创建一个mask,把1左移k位
int mask = 1 << k;
2、然后把n右移mask位就是想要得到的结果
int masked_n = n & mask;
int thebit = masked_n >> k;
全部回答
- 1楼网友:独行浪子会拥风
- 2021-02-14 14:46
右移位。。。
- 2楼网友:拾荒鲤
- 2021-02-14 14:16
首先,java里int是有32位2进制数组成的
我们一般赋值 int i = 1; 这个是赋值10进制的数
赋值 2进制要 int i = 01;(前面加个0,就表示是2进制数)
赋值16进制(常用) int i = 0x00000001; (0x表示为16进制数)
3种的值都是1.
要用2进制输出就是Integer.toBinaryString(i)
拓展:
因为计算机处理位运算速度是非常快的(应该是最快的运算)
所以很多时候,如果有一堆boolean变量需要表示时, 一般只用1个int的数表示,如:
int i = 0x0000000f;//表示后4位为1
int m = (i >> 2) & 1; // 其中m就是表示某一位的值,2表示右边开始数第2位(当然是从第0位开始算的)
这样就能取具体每一位的值
这种方法在很吃代码效率的程序中经常遇到
全手打,望支持
- 3楼网友:春色三分
- 2021-02-14 12:40
public class example{
public static void main(){
int x=1234;
//在这的话你的问题就是 mod 就可以达到那个问题
//无外乎是"% " "/" 这个号的使用 组合你就能到达你的所需要的。
}
}
- 4楼网友:雪起风沙痕
- 2021-02-14 11:55
你的意思是通过移位操作??
如果只是取前两位的话可以这样做,例如下
int a=10002325;
String b=a.tosring();
b=b.substring(0,2);
这样试试吧
- 5楼网友:封刀令
- 2021-02-14 10:53
代码中只写int[] num 时,表示声明了一个int型的数组,但是这个数组还未分配空间,不能使用。如果要使用这个数组的话,就需要为这个数组分配空间,即num = new int[数组长度],这样的话这个数组就能够正常使用了。
特别提醒:没有分配空间的数组是不能使用的,否则会报空指针异常,这点要特别注意。
我要举报
如以上问答信息为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
推荐资讯