所以,我们有一些数字,即2的权力之和:
例如$("#comments-form").submit(function(e) {
$('#comments-form .form-control').removeClass('#comments-form message-error');
$.post("comments-send.php", $('#comments-form').serialize(), function(data) {
if (data.status === 'ok') {
$("#comments-form .message-success").removeClass('hidden').velocity({ opacity : 1 });
$("#comments-form .button-submit").addClass('button-transparent');
$('#comments-form .form-control').val('');
setTimeout(function() {
$("#comments-form .message-success").velocity({ opacity : 0 }, function() {
$(this).addClass('hidden');
});
$("#comments-form .button-submit").removeClass('button-transparent');
}, 3000);
} else {
$.each(data.errors, function(i, e) {
$('.' + i).addClass('#comments-form message-error');
});
}
}, 'json');
e.preventDefault();
});
$("#comments-form").on('keyup', '.contact-form', function() {
var that = this;
if ($(this).val() !== '') {
$(this).removeClass('message-error');
} else {
$(that).addClass('message-error');
}
});
有没有办法知道,这笔金额中包含2的单独权力?
例如,包括32(2的幂为5)。
但是8(2的幂2)不是。
这有什么公式吗?
答案 0 :(得分:2)
是。只需检查
if (n & (1 << i)) {
it is included
}
其中(1 << i)
表示2^i
。
在您的特定情况下,您需要if (308 & (1 << 5)) { /* ... */ }
查看32=2^5
。
我现在已经阅读了迟来的评论。我不认为有一个独立于表示的公式(我的意思是closed-form expression)。
当然有一个明显的算法来检查数字中是否包含2^i
,其中包含“如果我们要将2^i
写为n
,则必须显示数字n
两个权力的总和“。 (请注意,这主要是计算int k = 0;
while (n > 0) {
if (k == i && n % 2 == 0) {
/* contained */
}
k++;
n /= 2;
}
的二进制表示形式,已经在计算机中以二进制形式表示。)
def require_uid(fn):
def check_uid(**kwargs):
cookie_uid = request.get_cookie('cookieName', secret='cookieSignature')
if cookie_uid:
//do stuff with a user object
return fn(**kwargs)
else:
redirect("/loginagain")
return check_uid