有一个二进制数的字符串,想把字符串循环右移k位,然后得到一个新的二进制数,求这个数的十进制值是多少。给定一个二进制字符串str和循环位移位数k,返回循环后的二进制数的十进制值。
import java.util.*; public class Solution { /** * 位移后二进制串的十进制值 * @param str string字符串 二进制字符串 * @param k int整型 循环位移次数 * @return long长整型 */ public long rotateRight(String str, int k) { // write code here if (k > str.length()) { k = k % str.length(); } String head = str.substring(str.length() - k); String tail = str.substring(0, str.length() - k); str = head + tail; return Long.parseLong(str, 2); } }