`
zhangyou1010
  • 浏览: 303287 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

计算byte表示的二进制数据中,1出现的次数

    博客分类:
  • java
阅读更多
无意中看到这个题目,开始想到的是把byte的二进制数据转为一个数组,然后再遍历数组,计算数组中1出现的次数。

感觉这应该是这简单,效率也比较低的做法。

在编程之美上看到如下做法:

把byte数据取2的模,如果余数为1则说明当前位置出现的是1,否则是0,然后不断把byte往右边移位,也就是除以2,

代码如下:

public static int countByte(byte b)
    {
        int count = 0;
        while (b > 0)
        {
            if (b % 2 == 1)
            {
                ++count;
            }
            b = (byte)(b / 2);
        }
        return count;
    }


感觉这是一个很不错的思路,记录下。
分享到:
评论

相关推荐

    Python中struct模块对字节流/二进制流的操作教程

    Python中的`struct`模块是处理字节流和二进制数据的关键工具,它允许程序员将基本数据类型(如整数、浮点数和字符串)与字节序列进行互换。在进行网络编程、文件读写或者低级别的数据解析时,`struct`模块尤其有用。...

    汇编语言 20个练习题目 代码加实验报告

    5.19 已知数组A包含15个互不相等的整数,试编写一程序,把既在A中又在B中出现的整数存在于数组中C中。 5.20 设在A,B和C单元中存放着三个数,若三个数都不是0,则求出三树之和并存放于D单元中;其中有一个数为0,则把...

    计算机组成原理课后题答案

    **二进制位长度计算**:对于不同位数的十进制数,可以通过计算所需的最小二进制位数来确定表示这些数所需的最小二进制位长度。例如,表示4位十进制数所需的最小二进制位数为14位,因为最大的4位十进制数为9999,介于...

    2016全国计算机等级考试二级MS-Office常考知识点(基础知识部分).doc

    字长(Word)表示一个字的二进制位数,影响计算机的计算能力和精度。 - 地址(Address):每个存储单元都有唯一的地址,用于定位和访问数据。 5. 编码: - ASCII码:7位二进制编码,用于表示128个字符,包括控制...

    Java移位运算

    ### Java移位运算详解 ...通过以上的介绍,我们可以看到Java中的移位运算符是非常强大的工具,可以帮助我们在处理二进制数据时更加高效。掌握这些运算符的使用方法,能够帮助开发者编写出更加高效、简洁的代码。

    课后习题2之历年初赛真题解析.pdf

    例如,二进制数1011可以表示为\(1*2^3 + 0*2^2 + 1*2^1 + 1*2^0 = 8 + 0 + 2 + 1 = 11\)。 - **十进制转二进制**:通过不断除以2并记录余数的方式进行转换。 - **十六进制转十进制**:十六进制的每一位表示16的幂...

    第1章_第3讲 多媒体数据的数字化.pptx

    总结来说,将多媒体数据数字化的原因在于计算机只能处理二进制数据(选项B)。量化位数(也称为量化精度)的增加确实可以提高声音和图像的质量,但也会增加数据量。因此,在实际应用中,我们需要找到质量和存储空间...

    Java编程题.pdf

    代码中定义了一个`MyByte`类,包含`byte`类型的成员变量`b`以及一个8位的`int`数组`a`用于存储二进制表示。`tenToSecond`方法将十进制数转化为二进制,`toTen`方法将二进制数还原为十进制。这个过程利用了位运算,...

    【2018最新版】转本计算机:计算题专项.pdf

    在网络传输速率的表示中,通常使用bps(比特/秒)表示二进制信息的传输速率。 在做计算题时,考生需要熟悉这些基础知识,并能够灵活运用到实际问题中。例如,理解存储容量单位的转换,如1KB=1024B,而网速通常以bps...

    Java编程题(20211004143101).pdf

    1. **将byte类型十进制数转化为颠倒二进制并计算对应十进制值** 这个问题涉及到将一个byte类型的十进制数转换为二进制,然后颠倒二进制位,最后再将其转换回十进制。`MyByte` 类包含两个方法:`tenToSecond()` 和 `...

    左位移_西门子PLC_源码

    在编程领域,特别是工业自动化控制中,西门子PLC(可编程逻辑...这种技术常见于处理二进制数据,比如状态检测、计数或者数据编码解码等任务。学习和理解这些基本的位操作对于深入掌握PLC编程和解决实际问题至关重要。

    PYTHON.转换到C结构或从C结构转换回来.pdf

    Python的`struct`模块是处理二进制数据的重要工具,它允许我们将Python数据类型转换为C语言结构体的字节序列,反之亦然。这对于与非Python程序交互,例如读写由C程序生成的二进制文件或在网络通信中传递数据非常有用...

    MOOC大学计算机考试题目.pdf

    12. 信息存储单位:位(Bit)、字节(Byte)和兆(MB)是信息存储单位,而“字”(Word)是计算机中数据处理的基本单位,不是存储单位。 13. 算法与程序的关系:算法是问题求解的方法和过程,程序是算法的具体实现...

    Algorithm-bytecount.zip

    在计算机系统中,字节是最基本的数据存储单元,通常由8个二进制位组成。在处理文本数据时,我们可能会关心特定字符的出现频次,尤其是在进行文本分析、编码转换或压缩算法设计时。对于UTF-8编码,每个字符可能由1到4...

    计算机常用量单位PPT课件.pptx

    - 二进制是一种基于0和1的数字系统,基数为2,是计算机内部数据表示的基础。二进制转换和编码对于理解和处理计算机信息至关重要。 这些知识点是计算机科学的基础,理解和掌握它们对于学习和使用计算机至关重要。...

    C1认证知识总结——计算机通识+Web基础+JS基础+Web进阶

    - 二进制(Binary):二进制是计算机内部处理数据的基本方式,由0和1组成,进位规则是逢2进1。 - 八进制(Octal):以8为基数,用0-7这8个数字表示,进位规则是逢8进1。 - 十进制(Decimal):我们日常生活中的...

    (完整word版)奥鹏东师2019年秋季(计算机应用基础)离线考核-(仅供参考).doc

    例如,32位计算机一次可以处理32位的二进制数据。 4. **Windows操作**: - 创建快捷方式:在Windows桌面或开始菜单中创建应用程序快捷方式,可以通过右键点击目标程序,选择“发送到”>“桌面(创建快捷方式)”,...

    计算机基础计算机导论简答题背诵篇.pdf

    冯·诺依曼结构是现代计算机的基础,其原则是存储程序并在程序控制下工作,数据和指令都以二进制形式存在内存中,通过CPU的读取和执行来完成计算任务。 【存储器分类】 存储器分为内存和外存。内存(RAM和ROM)是...

Global site tag (gtag.js) - Google Analytics