精华内容
下载资源
问答
  • 二进制及其单位换算
    千次阅读
    2021-05-23 23:07:16

    二进制

    • 概述:二进制数据是用0和1两个数码来表示的数。它的基数为2,进位规则是“逢二进一”,借位规则是“借一当二”。

    计算机中的存储容量单位

    • :bit,简称b,存放一位二进制数,即0或者1,bit是存储信息最小的单位。
    • 字节:Byte,简称B,8位2进制信息称为一个字节,即:1B=8b,Byte是存储信息常用的基本单位。
    • 常见的存储容量单位
      KB、MB、GB、TB、PB……

    常见存储容量单位的换算

    • 从B、KB、MB、GB到TB依次是1024倍的递增,也就是210的倍数。即
      (1)1KB=210B=1024B
      (2)1MB=210KB=1024KB
      (3)1GB=210MB=1024MB
      (4)1TB=210GB=1024GB=220MB=230KB=240B

    例题

    若计算机中地址总线的宽度为24位,则最多允许直接
    访问主存储器( )的物理空间(以字节为单位编址)。

    A、8MB B、16MB
    C、8GB D、16GB

    答:
    确切的说是:它能控制的物理地址范围是16MB,也就是 2的24次方。
    因为物理地址是直接由地址总线上的信号唯一确定的,
    24位地址总线,每一位有0、1两种状态,总共 2^24 种状态。
    事实上BIOS ROM、其它总线资源还要占用一部分物理地址,
    所以实际上的物理内存容量还不到 16MB !

    更多相关内容
  • 适用于将二进制数转换为十进制,A为十进制,B二进制。{A,B}每次左移一位,判断A的每四位是否>4,若大于四则+3,...B多少二进制数则左移多少次。最终A是B转换成十进制的数。代码为32位二进制数转换为十进制数。
  • Bin 二进制Binary,简写为B,在Java的前缀表示为0b Oct 八进制Octal,简写为O,在Java的前缀表示为0 Des 十进制Decimal,简写为D Hex 十六进制Hexadecimal,简写为H,在Java的前缀表示为0x 2. 初识二进制 其实...

    什么是二进制?

    1. 前言

    对于任何一种进制—X进制,就表示每一位置上的数运算时都是逢X进一位。 十进制是逢十进一,十六进制是逢十六进一,二进制就是逢二进一,以此类推,x进制就是逢x进位。
    我们常用的有以下几种进制:
    Bin 二进制Binary,简写为B,在Java中的前缀表示为0b
    Oct 八进制Octal,简写为O,在Java中的前缀表示为0
    Des 十进制Decimal,简写为D
    Hex 十六进制Hexadecimal,简写为H,在Java中的前缀表示为0x

    2. 初识二进制

    其实,不同进制的计算方式是相通的:
    我们先列一些常用的10进制与2进制的对应关系,大家先来感受一下:
    在这里插入图片描述
    通过这张图,有没有发现一些规律呢?
    对于10进制而言:10到100需要乘以十进制的10,1000到10000也需要乘以10
    对于2进制而言:每加一个0都需要乘以二进制的2,所以用2的指数来表示。
    例如 10000000,1后面有7位,就可以用2的7次方表示。

    我们列张图,大家来比较一下十进制乘10和二进制乘2的运算结果:
    在这里插入图片描述

    3. Java中的byte类型

    java 中的 byte 类型整数是单字节类型,也就是说,它使用 8 位(bit) 来表示整数。

    8 位(bit)能表示的数字:

    在这里插入图片描述
    但是!!!java中byte类型的左侧的一位规定用来表示符号,0表示正数,1表示负数。那么它表示数字的位就只有7位,而不是8位,所以:

    java 中 byte 类型正数的表示:

    在这里插入图片描述

    java 中 byte 类型负数的表示:

    java 的 byte 类型如何表示负数?最小值-128.符号位是1,其余7位是0,得10000000
    那-128+1得-127,表示为10000001,那么可以以此类推,继续执行加1运算加到负数的最大值:11111111,如下图所示:
    在这里插入图片描述

    4. Java中整数类型的最小值与最大值

    与 byte 类型相同,short,int 和 long 也是用相同的方式表示整数。
    这四种类型的最小值和最大值分别可以这样表示:

    4.1 byte(1字节,8位):

    2进制 2的指数
    最小 10000000 -2^7
    最大 01111111 2^7 - 1

    4.2 short(2字节,16位):

    2进制 2的指数
    最小 10000000 00000000 -2^15
    最大 01111111 11111111 2^15 - 1

    4.3 int(4字节,32位):

    2进制 2的指数
    最小 10000000 00000000 00000000 00000000 -2^31
    最大 01111111 11111111 11111111 11111111 2^31 - 1

    4.4 long(8字节,64位):

    2进制 2的指数
    最小 10000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 -2^63
    最大 01111111 11111111 11111111 11111111 11111111 11111111 11111111 11111111 2^63 - 1

    大概了解了二进制后,我们来学习一下常用进制之间是怎么转换的吧!

    进制之间的转换

    展开全文
  • python3 二进制转中文

    千次阅读 2021-01-14 17:49:43
    关于二进制转中文的问题。... bytes(name,'unicode_escape')b'\\u4f60\\u597d'现在我有一段二进制数据,想要转化成中文。bytes_name = b'\x60\x4f\x7d\x59'我尝试使用bytes_name.decode('unicode_e...

    关于二进制转中文的问题。

    >>> name = '你好'

    >>> name

    '你好'

    >>> bytes(name,'unicode_escape')

    b'\\u4f60\\u597d'

    现在我有一段二进制数据,想要转化成中文。

    bytes_name = b'\x60\x4f\x7d\x59'

    我尝试使用

    bytes_name.decode('unicode_escape')

    去转化,得到结果

    '

    O}Y’`,

    我应该怎样做才可以得到正确的结果

    你好

    谢谢!

    ===========================================================================

    谢谢大家,我已找到答案。

    那个二进制数据

    bytes_name = b'\x60\x4f\x7d\x59'

    是用c语言写的另一个程序传送过来的数据。

    根据大家的提示,我将

    b'\x60\x4f\x7d\x59'

    转化成

    b'\\u4f60\\u597d'

    ,然后再

    decode('unicode_escape')

    即可。

    def parse_unicodestring(unicode_bytes,length):

    result_bytes = b''

    for i in range(0,length,2):

    a = hex(unicode_bytes[i])[2:].encode('unicode_escape') if len(hex(unicode_bytes[i])) == 4 else ('0'+hex(unicode_bytes[i])[2:]).encode('unicode_escape')

    b = hex(unicode_bytes[i+1])[2:].encode('unicode_escape') if len(hex(unicode_bytes[i+1])) == 4 else ('0'+hex(unicode_bytes[i+1])[2:]).encode('unicode_escape')

    result_bytes += b'\u'+b+a

    return result_bytes.decode('unicode_escape')

    大多数汉字的utf8二进制形态都是三个字节。参照维基百科对utf8编码的描述,将第一个字节的二进制数的前四位掐掉,第二字节的前两位,自己第三字节的前两位掐掉,剩余部分拼起来(总共16位的二进制数值)就是该UTF-8汉字的实际unicode值。转成16进制打印出来就能验证效果了。我曾经亲自实验过。

    参考信息 https://en.m.wikipedia.org/wiki/UTF-8

    第一次答题。话说我用户名是guoshim,手机端回答。为什么显示为一个叫做murphywuwu的答案?数据串了吗?奇怪了。

    你的二进制不对啊。。如下:

    >>> name = '你好'

    >>> name

    '你好'

    >>> name.encode()

    b'\xe4\xbd\xa0\xe5\xa5\xbd'

    >>> bname = name.encode()

    >>> bname

    b'\xe4\xbd\xa0\xe5\xa5\xbd'

    >>> bname.decode()

    '你好'

    >>>

    这是二进制么?

    展开全文
  • 二进制中多少个1

    千次阅读 2016-05-31 22:24:57
    题目描述:计算在一个 32 位的整数的二进制表式多少个 1. 样例:给定 32 (100000),返回 1;给定 5 (101),返回 2;给定 1023 (111111111),返回 9 很简单的题目,当然可以先对十进制的整数转换成二进制,再统计...

    题目描述:计算在一个 32 位的整数的二进制表式中有多少个 1.

    样例:给定 32 (100000),返回 1;给定 5 (101),返回 2;给定 1023 (111111111),返回 9

    很简单的题目,当然可以先对十进制的整数转换成二进制,再统计1的个数。

    但是通过位运算(其实就是通过分析二进制位上0,1的关系,直接对0,1比特位进行运算)我们可以更快地解决问题。

    先说一下基本的几种位运算:

    1. 与(&):相当于是数学关系中的交,只有全部为真,结果才是真,也就是说,

    0 & 1 = 1 & 0 = 0 & 0 = 0; 

    1 & 1 = 1 

    2. 或(|):相当于求并,有一个真就是真,

    0 | 0 = 0

    1 | 0 = 0 | 1 = 1 | 1 = 1

    3. 异或(^):相同则假,相异则真,

    1 ^ 1 = 0 ^ 0 = 0

    1 ^ 0 = 0 ^ 1 = 1


    当然,还有右移和左移运算,这里不做详细介绍了。以后有机会再同大家分享。

    回头看这道题,要统计的是整数的二进制中有多少个1. 那么可以考虑一下这个问题,就是整数和它减去1后的数相比,在二进制的形式中,有什么关系呢?

    我发现,有以下两条:

    1. 奇数的话,减去1成偶数,二进制形式中,只有最后一位不同(由1变为0)。例如:5:101,4:100

    2. 偶数的话,减去1成奇数,二进制形式中,偶数尾巴上的所有0(直到倒数第一个1为止),全部变为1,且倒数第一个1变为0. 例如:142:10100000;141:10011111

    好了,这就算是找到规律了,这个规律怎么用呢?我发现,用“与”运算可以产生很奇妙的效果:不论是奇数还是偶数,“与”运算之后,都会是原先的数的二进制中少一个1.

    那么思路很清晰了,写一个循环,每次都和减1的值做“与”运算,直到结果等于0,统计循环的次数,就能知道有多少1.

    代码如下:

    class Solution:
        # @param num: an integer
        # @return: an integer, the number of ones in num
        def countOnes(self, num):
            count = 0
            temp = num
            if num < 0:
                temp = abs(num + 1)
            while temp != 0:
                count += 1
                temp = temp & (temp - 1)
            return count if num >= 0 else (32 - count)
            # write your code here


    需要注意的是正负数的二进制问题。7-8行是对负数做的处理。这里,先普及一下负数的二进制是如何生成的,分两步:

    1. 取反:就是对这个负数的绝对值按位取反,得到的叫做反码(比如,要计算-2的二进制,就要先对2的二进制按位取反)

    2. 加1:取反后,对这个二进制数加1,得到的叫做补码

    比如,-24,先对24(二进制数:11000)取反,得到00111;再加1,得到01000

    所以,我们设一个负数是a,显然,a - 1的二进制表示就是-a的反码。而用32减去(-a)中1的个数就是(a - 1)中1的个数。因此,求一个负数的二进制中1的个数,可以先对这个数(把他看做a - 1)加1,记为b,再求b的绝对值的二进制表示的1的个数,记为n,32 - n就是最后的答案。

    上面的逻辑稍微有点绕,不过仔细想想应该能明白。

    展开全文
  • 二进制转十进制的转换原理:整数部分从二进制的右边第一个数开始,每一个乘以2的n次方,n从0开始,每次递增1。然后得出来的每个数相加即是十进制数。小数部分要使用“乘 2 取整法”。即用十进制的小数乘以 2 并取走...
  • 目录先导知识1、十进制转R进制例...3、二进制转八进制或十六进制例:1010101B二进制)转换成八进制是多少?例:10101011B二进制)转换成十六进制是多少?4、八进制或十六进制转二进制例:105Q(八进制)转成二进制
  • 二进制是计算技术广泛采用的一种数制。二进制数据是用0和1两个数码来表示的数。它的基数为2,进位规则是“逢二进一”,借位规则是“借一当二”。二进制数据也是采用位置计数法,其位权是以2为底的幂。二进制转换十...
  • C语言的整数除了可以使用十进制,还可以使用二进制、八进制和十六进制。二进制数、八进制数和十六进制数的表示一个数字默认就是十进制的,表示一个十进制数字不需要任何特殊的格式。但是,表示一个二进制、八进制...
  • 二进制ASCII码

    千次阅读 2021-07-25 08:24:43
    本词条缺少概述图,补充相关内容使词条更...依次类推,7位二进制数可以表示(2=)128种状态,每种状态都唯一地编为一个7位的二进制码,对应一个字符(或控制码),这些码可以排列成一个十进制序号0~127。所以,7位ASCII...
  • 0x20(十六进制0x20等于多少)

    千次阅读 2021-05-22 04:08:12
    另外,0x20作为单字节表示,可以用于.0x20换算成二进制多少? 0x是十六进制符号20换成二进制是10100,0*20=0,那么二进制还是00x20是什么意思数字开头的 0x 表示该数为16进制 0x20 即16进制数 20就跟 20H 的意思是...
  • 话题:计算机采用二进制编码的原因是什么回答:计算机采用二进制的原因 (1)技术实现简单,计算机是由逻辑电路组成,逻辑电路通常只有两个状态,开关的接通与断开,这两种状态正好可以用“1”和“0”表示。 (2)简化运算...
  • 十六进制 到 十进制使用 int() 函数 ,第一个参数是字符串 '0... int('0xf',16)15二进制 到 十进制>>> int('10100111110',2)1342八进制 到 十进制>>> int('17',8)15其实可以看到,不管 几进制数...
  • 二进制如何转换为十进制?

    千次阅读 2021-06-19 05:54:00
    二进制到十进制数字转换使用加权列来标识数字的顺序以确定数字的最终值将二进制转换为十进制(base-2到base-10) )数字和背面是一个重要的概念,因为二进制编号系统构成了所有计算机和数字系统的基础。十进制或...
  • c语言十六进制转为二进制

    千次阅读 2021-05-19 19:26:46
    本文概述什么是十六进制?十六进制是一种位置系统,以16为基数表示十六个不同的符号的数字。这些不同的符号,即“ 0-9”代表从零到九的值,...十六进制数= A12C相当于A的二进制值是1010等于1的二进制值是0001等于...
  • 2)二进制的简写形式二、进制运算1)八进制运算表(1) 加法运算表(2)乘法运算表(3)八进制简单运算题三、数据宽度1)什么是数据宽度2)计算机常用的基本数据宽度四、无符号数有符号数进制进制也就是进位计数制,是人为...
  • 二进制前缀 0b 八进制前缀 0 十六进制前缀 0X 进制基数(radix) 前缀 示例 二进制 binary 0b 0B 0b11 = 2+1=3 八进制 octal 0o 0O 0 0o11 = 8+1=9 十进制 decimal 无前缀 11 = 11 十六进制 hex 0x 0X ...
  • C语言关于二进制的换算

    千次阅读 2019-08-30 09:17:17
    十进制是逢十进一,二进制就是逢二进一,以此类推,x进制就是逢x进位。 十进制 二进制 数码: 0、1、2、3、4、5、6、7、8、9 数码: 0、1 基数: 10 基数: 2 运算规律: 逢十进一,借一当十 运算...
  • 浅谈BCD码同二进制转换

    千次阅读 2021-12-06 10:33:40
    一、BCD码 1、BCD码概述 2、BCD分类 1、有权码 2、无权码 3、BCD运算问题 二、二进制BCD码 1、原理实现 2、模块划分 3、仿真调试 4、仿真验证 三、BCD码转二进制 1、原理实现 2、模块划分 3、仿真验证
  • 二进制的转换 了解进制的转换(二、八、十、十六) 二进制二进制数据是用0和1两个数码来表示的数。它的基数为2,进位规则是“逢二进一”,借位规则是“借一当二”。 八进制:在八进制数,每一位用0—7八个...
  • python 二进制的数为啥带0b?,怎样去掉0b? 0 和 b 的理解 b 代表binary 也就是二进制的意思
  • 浮点数(小数)在计算机如何用二进制存储?

    千次阅读 多人点赞 2020-08-28 22:39:12
    浮点数在计算机如何用二进制存储? 前言 前面我有篇博文详解了二进制数,以及如何同二进制数表示整数。但是,计算机处理的不仅仅是整数,还有小数,同样小数在计算机也是用二进制进行存储的,但是,二进制如何去...
  • 背景:最近有人给我一大堆二进制,看的我眼花缭乱,最后得知这是汉字的编码,那肯定要转成汉字呀,当然不排除有标点、特殊符号、英文大小写字母等,但这些都比较简单,主要是汉字与二进制的转换稍微麻烦一点。...
  • python以二进制输出

    千次阅读 2020-12-24 12:24:36
    给定一个整数数字 0x1010,请依次输出 Python 语言十六进制、十进制、八进制和二进 制表示形式,使用英文逗号......(输出) 22、以下选项,属于Python语言合法的二进制整数是 A.0b1708 B.081010 C.081019 D.0bC3F ...
  • 计算机常用的计数制用若干数位(由数码表示)...另外,还有二进制、八进制和十六进制等。在计算机的数制,要掌握3个概念,即数码、基数和位权。下面简单地介绍这3个概念。数码:一个数制表示基本数值大小的不同...
  • 二进制与十六进制的转换与应用

    千次阅读 2020-12-24 15:38:28
    在说二进制前,先说一下我们常用的十进制:十进制就是逢10进位,十进制是由0、1、2、3、4、5、6、7、8、9这10个基本数字组成。每次在9之后(也就是10)就进一位,我们可以把9先理解成09,10就是在09的9的钱一位进一位...
  • 二进制最大值

    千次阅读 2020-07-18 22:40:50
    2^16-1 = 0b1111111111111111 # 16位二进制 2的16次方的二进制是17位。 2^16 = 0b10000000000000000 # 17位二进制 2的16次方能表示的范围是[65535, 0] 或 [32767, -32768]。 -32768怎么表示? -32768 = 0b...
  • python二进制

    千次阅读 2021-01-29 04:50:33
    二进制的由来大约产生于公元前第一个千年的初期的《周易》,开始主要是一部占卜用书,里边的两个符号可能分别代表“是”和“不”,这本书只对莱布尼茨的研究有参考和启发的作用,如果就此说二进制乃是起源于古代中国...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 941,271
精华内容 376,508
关键字:

二进制中b等于多少