永发信息网

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;
全部回答
  • 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[数组长度],这样的话这个数组就能够正常使用了。 特别提醒:没有分配空间的数组是不能使用的,否则会报空指针异常,这点要特别注意。
我要举报
如以上回答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
点此我要举报以上问答信息
大家都在看
推荐资讯