Я связываю, чтобы создать линейный конгруэнтный генератор случайных чисел, и я хочу выбрать, скажем, первые 16 бит шестнадцатеричного значения в 64-разрядной форме. Как я могу это сделать в java? Я уже создал (очень) базовое число, основанное на времени суток.Манипулирование шестнадцатеричными значениями в java
Моя формула:
семян = 0x5D588B656C078965L * cal.get (Calendar.HOUR_OF_DAY) + 0x0000000000269EC3;
Я просто хочу выбрать первые 16 бит этого, я пытался подумать, как я буду делать это с целым числом, но я не думаю, что могу применять те же понятия здесь. Благодаря!
'new Random(). Next (16);' https://docs.oracle.com/javase/8/docs/api/java/util/Random.html#next-int- – markspace
'int sixteenLeastSignificantBits = ((int) longValue) & 0xFFFF; '? –