Code Bye

OC高手JS高手JAVA高手进来都来看下,帮个忙

有个数值转换函数,JAVA和JS版都有了,本人是个刚学一个星期的OC小白,写不出OC版的数值转换函数。
下面贴出JS和JAVA版函数,望有高手们帮本人转成OC版谢谢!
JS版
function abrac_hash(str) {
    var hash = 5381;
    var i = str.length;
    while (i) {
        hash = (hash * 33) ^ str.charCodeAt(--i);
    }
    return hash >>> 0;
}

JAVA版

public static	int getRoomID(String str) {
		// >>>0 为空补0
		if (null == str || "".equals(str)) {
			return 0;
		}
		// 字符串非空,按位计算哈希
		int hash = 5381;
		int i = str.length();
		while (i > 0) {
			hash = (hash * 33) ^ str.charAt(--i);
		}
		if(hash<0){
			hash=hash+2147483647+1;
		}
		LogUtils.e("getRoomID:" + hash);
		return hash;
	}
解决方案

40

- (int) getRoomID:(NSString*)str {
    
    if (str.length <= 0) {
        return 0;
    }
    int hash = 5381;
    int i = (int)str.length;
    while (i > 0) {
        hash = (hash * 33) ^ [str characterAtIndex:--i];
    }
    if (hash < 0) {
        hash = hash + 2147483647+1;
    }
    return hash;
}

不知道 对不对 你可以看下


CodeBye 版权所有丨如未注明 , 均为原创丨本网站采用BY-NC-SA协议进行授权 , 转载请注明OC高手JS高手JAVA高手进来都来看下,帮个忙