如何检查数字是否为回文位

用户名

我必须编写代码来检查数字是否为回文。例如9(1001)是位回文,而6(110)不是位回文。

我已经编写了将数字转换成以二进制表示该数字的字符串的代码,然后检查了字符串回文。有什么更好的方法吗?

瓦尔拉帕塔德

我们可以使用按位运算符来做到这一点。想法是从右到左一次读取数字的每一位,并使用这些位从左到右生成另一个数字。最后,我们比较这两个数字。如果它们相同,则原始数字为二进制位回文。

int isBitPalindrome(int x) {
    int reversed = 0, aux = x;
    while (aux > 0) {
        /* 
        Before doing that shifting reversed to 
        right, to build it from left to right. 
        Takes LSB of aux and puts it as LSB of reversed
        variable.
        */
        reversed = (reversed  << 1) | (aux & 1);

        /*
        Loop depends on number of bits in aux. Takes next bit into 
        LSB position by shifting aux right once.
        */
        aux = aux >> 1;
    }
    return (reversed  == x) ? 1 : 0;
}

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

如何检查三位数字是否是回文?

来自分类Dev

如何检查数字是否是回文

来自分类Dev

如何检查数字是否是回文?

来自分类Dev

检查数字是否为回文的Javascript函数

来自分类Dev

检查数字是否是回文

来自分类Dev

如何在Java中检查链接列表是否为回文?

来自分类Dev

如何检查数字是否为NaN

来自分类Dev

如何检查ID是否为数字?

来自分类Dev

创建一个函数来检查数字是否为回文

来自分类Dev

Java:检查数字是否为回文时,字符串索引超出范围

来自分类Dev

尝试通过使用字符串来检查数字是否为回文

来自分类Dev

检查单链列表是否为回文

来自分类Dev

检查单链列表是否为回文

来自分类Dev

检查单向链表是否为回文

来自分类Dev

如何检查目标代码是否为16/32位?

来自分类Dev

如何生成代码以检查单词是否是回文?

来自分类Dev

如何检查序列是否可以变成回文

来自分类Dev

如何创建一个检查日期是否为回文的函数?

来自分类Dev

检查数字是否为NaN

来自分类Dev

检查数字是否为质数

来自分类Dev

检查数字是否为整数

来自分类Dev

检查输入是否为数字

来自分类Dev

检查数字是否为质数?

来自分类Dev

检查数字是否为NaN

来自分类Dev

如何检查数字字段中的值是否为整数?

来自分类Dev

PHP如何检查数字数组是否全部为正

来自分类Dev

如何检查给定数字是否为x ^ y形式?

来自分类Dev

如何检查数字<1是否为2的幂?

来自分类Dev

Twig-如何检查变量是否为数字/整数