精华内容
下载资源
问答
  • 二进制知识详解(理论联系实际)

    千次阅读 2020-01-04 05:29:54
    异或运算表明:不要自我疑惑绪言20190103 二进制知识常用换算进制转换有无符号数双符号位逻辑运算ASCII码常用知识总结规律:20200104异或运算常用结论区分逻辑与按位判断奇偶区别与联系 绪言 本知识点可用于汇编...

    绪言

    本知识点可用于汇编语言、常见编程语言(脚本语言/面向对象过程语言/面向对象语言/函数式编程语言)、计算机组成原理、密码学等学科的基础学习.
    

    20200103 二进制知识

    常用换算

    20200103 二进制知识
    2^10 = 1024 = 10^3
    1Word = 2Bytes = 16Bits(字,字节,位/比特)
    “逢X进一”
    权位,X^i
    Binary二进制,B,0-1,2^k
    Octal八进制,O,0-7,8^k
    Decimal十进制,D,0-9,10^k
    Hexadecimal十六进制,H,0-F,,16^k
    Eg: 21H = 33D = 41O = 100001B

    进制转换

    任意进制转十进制:“按权展开,相乘求和“”
    十进制转任意进制:整数部分“除基数,取余数”,小数部分“乘基数,取整数(部分)”
    二进制转八进制:“三位合一”
    整数部分自右往左,小数部分从左往右,两端补齐(整数左补0,小数右补0)
    八转二:“一位拆三”
    二转十六:“四位合一”
    十六转二:“一位拆四”
    降幂法:减去权位值,“能减为1,不能减为0”
    “8421”快速转化:32,64,128,256

    有无符号数

    有符号数:
    机器字长必定为2的整数倍,即可能取值为8,16,32,64
    以8位为例,最左边第1位是正负符号位,后7位为数值位
    速记结论:后七位权值总和比第八位权值(也就是最左边的第1位)小1,即
    i=0n22i=2n11\sum_{i=0}^{n-2} {2^i} = 2^{n-1}-1,其中n为机器字长


    16位字长机器:2^15 = 32768
    有符号数:数值划分为负数、0和正数,故2^16 / 2 = 2^15,且0是从正数部分抠出去的,
    因而正数范围比复数范围少1
    n位二进制补码的表数范围:2n1-2^{n-1} ~ 2n112^{n-1}-1
    无符号整数的表数范围: 0 ~ 2n2^n
    符号位:0表示正,1表示负
    原码:因符号位而有正负之分,0也有正负之分、因此0的表示不唯一
    反码:正数反码同原码,负数反码要数值位取反,符号位不做变动,0的表示也不唯一
    补码:正数补码同原码,负数补码除了最右边1位不变动,其余数值位取反,
    符号位也不用动,补码0的表示唯一,都为完全0值
    其他说法:
    (1)写出正数的补码,“最左边的符号位由1(负)改0(正)即可”
    (2)按位求反,“包括符号位和数值位”
    (3)末位加一“逢2进1”
    移码:不论正负,符号位与补码相反,数值位完全相同

    双符号位

    数值溢出问题与双符号位制:
    进位“逢2进1”,溢出
    正数前边补0变双00,负数前边补1变双11
    二进制数四则运算:
    加:[X+Y] 补码= [X]补码+ [Y] 补码
    减:加法化加法,即(此时需要求负数补码)
    [X-Y] 补码= [X]补码+ [-Y] 补码
    乘:符号位异或运算,数值位用并行乘法(器)
    除:并行除法
    规律总结如下:
    对于正数:[X] 原码= [X]反码+ [X] 补码
    正负0的补码(或移码)具有唯一表示,原码和反码表示并不唯一(符号位引起不同)

    逻辑运算

    又叫按位运算(汇编上等价)
    与AND, 标记为 ^ 或 · “同真才真1”
    或OR, 标记为 ∨ 或 + “同假才假0”
    非NOT, 标记为 ¬ 或 ~ 或 ’ “真假互变”
    异或XOR,标记为 ∀ 或 ㊉ “相异为真1”
    运算优先级:括号最高
    NOT 运算符具有最高优先级,然后是 AND 和 OR 运算符
    “单运算符优先级要比双运算符的高”

    ASCII码

    常用知识

    20200104 补充知识:
    ‘A’ 65Dec = 41Hex
    ‘a’ 97Dec = 61Hex
    字母大小写互换:±32
    ‘0’ 48D = 30H
    (space),空格 32D = 20H = 0x20
    CR (carriage return),回车 13D = 0DH = 0x0D
    LF (NL line feed, new line),换行键 11D = 0AH = 0x0A
    NUL(null),空字符 0000 0000,0D = 0x00
    ESC (escape),换码(溢出) 0001 1011,27 = 0x1B

    总结规律

    ASCII码值由小到大的排列顺序:空格字符、数字符、大写英文字母、小写英文字母
    各国编码不同:
    0–127表示的符号是一样的,但是128—255段各自相异
    字符各异的字符串理论长度为: 256
    中、日、韩等国的象形文字,双字节字符集:其中汉字为GB系列(典型如GBK)
    在GBK编码中,不论中英文都是双字节的
    UTF-8为国际通用编码:
    “外国人访问GBK网页要下载中文语言包支持,访问UTF-8编码的网页不出现此类问题”

    20200104异或运算

    常用结论

    1.任何数与0异或 = 自身:00=0,01=1
    2.任何数与1异或 = 自身取反:10=1,11=0
    3.任何数自我异或 = 重置为0:11=0,00=0
    1用于补充二进制位数,不产生异或运算影响;
    2用于按位取反,即位翻转,经常需要与1相结合使用;
    3用于置0/初始化/判等,eg: return ((a ^ b) == 0)
    汇编上置0: xor a,a
    异或运算不仅可以判等,也可应用于比较大小
    3次异或运算实现两数交换:
    a = a^b;//第1个结果为较大数与较小数之差值
    b = b^a;//第2、3个数开始交换原始数值
    a = a^b;
    a^b = b^a,数学上类似 (a-b)^2 = (b-a)^2,均匀分布方差=1/12平方值

    区分逻辑与按位

    (以C/C++为例)
    逻辑运算:逻辑运算即是布尔运算,结果非真(true)即假(false)
    一共3个: 与&& 或|| 非!
    位运算:用于快速完成运算操作(基于底层二进制)
    一共4个: 按位与& 按位或| 按位非~ 按位异或^

    判断奇偶

    按位与运算的应用:任何数可跟1按位与实现奇偶数判断,即
    A1=1则为奇数,A1=0则为偶数
    因为“0000……0001”使得原数值二进制表示后仅最末尾有实际意义,且“同真才真”

    区别与联系

    (对立统一)
    逻辑运算与、逻辑或有短路机制,按位与、按位或不会短路
    按位运算符可以用于逻辑运算,但是执行效率更低
    逻辑运算用于逻辑判断,按位运算用于数值运算

    后记补充

    Markdown插入数学公式办法

    学习链接

    后记交流

    QQ:2636105163
    可发邮件,也可加好友
    群聊:956349248
    

    手工码字,如有错误欢迎指正!

    2020/01/04 05:53

    展开全文
  • 读写二进制数据

    千次阅读 2018-12-28 17:54:55
    其每个元素为一个字节的数值,一字节由8位二进制数字组成,换算为10进制,位于0-255之间。 ASCII码:一个英文字母占一个字节的空间,一个中文汉字占两个字节的空间。 UTF-8编码:一个英文字符等于一个字节,一个中文...

    二进制数据在python中以字节(bytes)类型和字节数组类型(bytearray)保存着,前者数据固定,后者不固定,可继续添加。其每个元素为一个字节的数值,一字节由8位二进制数字组成,换算为10进制,位于0-255之间。
    ASCII码:一个英文字母占一个字节的空间,一个中文汉字占两个字节的空间。
    UTF-8编码:一个英文字符等于一个字节,一个中文(含繁体)占三个字节
    Unicode编码:一个英文字符等于一个字节,一个中文(含繁体)占三个字节

     

    二进制数据

    with open('somefile.bin', 'wb') as f:
        f.write(b'Hello World')

    当写入二进制数据时,数据必须是以对象的形式提供,而且该对象可以将数据以字节形式暴露出来(字节串、bytearray对象)

    with open('somefile.bin', 'rb') as f:
        data = f.read()
        print(data)

    当读取二进制数据时,所有的数据将以字节串的形式返回

     

    字节串和文本字符串之间的微妙语义差异。特别要注意的是在做索引和迭代操作时,字节串会返回代表该字节的整数值而不是字符串

    t = 'Hello World'
    b = b'Hello World'
    print(t[0], b[0])  # H 72

     

    如果需要在二进制文件中读取或写入文本内容,要做好相应的编码或解码操作

    with open('somefile1.bin', 'wb') as f:
        text = 'I love study'
        f.write(text.encode('utf-8'))

    encode(编码):按照某种规则将“文本”转换为“字节流”,该方法返回编码后的字符串,它是一个 bytes 对象
        
    with open('somefile1.bin', 'rb') as f:
        data1 = f.read(16)
        text1 = data1.decode('utf-8')
        print(text1)

    decode(解码):将“字节流”按照某种规则转换成“文本”。

     

    关于encode和decode的一些补充:

    python3中对文本和二进制做了比较清晰的区分。python3默认编码为unicode,由str类型进行表示。二进制数据使用byte类型表示   

    字符串通过编码转换为字节码,字节码通过解码转换为字符串
    str--->(encode)--->bytes,bytes--->(decode)--->str

    import io
    import sys
    sys.stdout=io.TextIOWrapper(sys.stdout.buffer,encoding='utf8')


    name='小明'
    name1=name.encode('utf-8')
    name2=name1.decode('utf-8')  # 假如指定gbk会乱码
    print(type(name2))
    print(name2)

    name3 = name.encode('gbk')
    name4 = name3.decode('gbk')  # 假如指定utf-8会报错
    print(name4)

    name1是以utf-8编码的字节流,解码也要指定为utf-8,假如指定gbk,输出就会乱码;以什么字符集编码也要以什么字符集解码
    python默认的是unicode编码的,name是Unicode编码的,所以不难看出,其实utf-8和gbk之间都是通过unicode来做一个中间转换的操作
     utf-8是unicode扩展集

    展开全文
  • 程序员二进制计算器 v1.36

    热门讨论 2014-07-16 16:21:43
    专为程序员打造的计算器,二进制运算强大,支持64位。 采用表达式驱动,输入表达式便即时显示结果,抛弃传统计算器繁琐的按钮,表达式可粘贴或回调重复使用。 支持二进制串直接运算,如0b1101 & 0b0011= 0b0001。 ...
  • 字符与字节(byte):1个字符是8个字节byte字节与二进制(bit):1个字节有8位英文:ASCII码,1个字节有两种选择(0或1),因此有 2^8=256种类型。中文:gbk。unicode(uft-8,uft-16)编码全球统一编码,1个字符占2...

    字符与字节(byte):

    1个字符是8个字节byte

    字节与二进制(bit):

    1个字节有8位


    英文:ASCII码,占1个字节,1个字节有两种选择(0或1),因此有 2^8=256种类型。

    中文:gbk。


    unicode(uft-8,uft-16)编码全球统一编码,1个字符占2个字节,用十六进制编码形式表示。

    char c1 = '\u0061',\u :表示后面借的是十六进制unicode 编码。

    0061 十六进制转换成二进制:0000 0000 0110 0001


    二进制、十进制、十六进制转化:

    二进制--十进制:

    1101---1*2^0+0*2^1+1*2^2+1*2^3 = 1+4+8 = 13

    十进制--二进制

    13---(8+4+1)1101

    二进制--十六进制(0-9,10-15(a-f)

    1101---先转成十进制,再转十六进制




    展开全文
  • 一个二进制数字序列,在计算机中作为一个数字单元,一般为8位二进制数,换算为十进制。最小值0,最大值255。如一个ASCII码就是一个字节。  UTF-8编码:  一个英文字符等于一个字节,一个中文(含繁体)等于三个...
      ASCII码:
      一个英文字母(不分大写和小写)占一个字节的空间。一个中文汉字占两个字节的空间。

    一个二进制数字序列,在计算机中作为一个数字单元,一般为8位二进制数,换算为十进制。

    最小值0,最大值255。如一个ASCII码就是一个字节。


      UTF-8编码:
      一个英文字符等于一个字节,一个中文(含繁体)等于三个字节。
      Unicode编码:
      一个英文等于两个字节,一个中文(含繁体)等于两个字节。
      符号:
      英文标点占一个字节,中文标点占两个字节。举例:英文句号“.”占1个字节的大小,中文句号“。

    ”占2个字节的大小。

    转载于:https://www.cnblogs.com/lxjshuju/p/7115485.html

    展开全文
  • 一个二进制数字序列,在计算机中作为一个数字单元,一般为8位二进制数,换算为十进制。最小值0,最大值255。如一个ASCII码就是一个字节。  UTF-8编码:  一个英文字符等于一个字节,一个中文(含繁体)等于三个...
  • 心得:马云所说:"工作是水,生活是酒。水会决定酒的质量,但生活,要过得像酒一样,不可以像水一样,沒有味道。"但我更在意酒的质量. 编码格式 我们都知道计算的编码类型...都属于ASCII码,但ASCII码是用一个字节七位...
  • 一个二进制数字序列,在计算机中作为一个数字单元,一般为8位二进制数。换算为十进制 ,最小值-128,最大值127。如一个ASCII码就是一个字节。 UTF-8编码:一个英文字符等于一个字节,一个中文(含繁体)等于三个...
  • 1个字节(Byte)=8位 bit 1位就是计算机中的 1 或0比如10进制1 ,ASCII...一个二进制数字序列,在计算机中作为一个数字单元,一般为8位二进制数,换算为十进制。最小值0,最大值255。如一个ASCII码就是一个字节。UT...
  • 字节与字符换算

    千次阅读 2018-05-04 14:01:47
    一个二进制数字序列,在计算机中作为一个数字单元,一般为8位二进制数,换算为十进制。最小值0,最大值255。如一个ASCII码就是一个字节。 UTF-8编码:一个英文字符等于一个字节,一个中文(含繁体)等于三个字节。 ...
  • 一个二进制数字序列,在计算机中作为一个数字单元,一般为8位二进制数,换算为十进制。最小值-128,最大值127。如一个ASCII码就是一个字节。 UTF-8编码:一个英文字符等于一个字节,一个中文(含繁体)等于三个字节...
  • [汇编]数制与

    2019-10-26 16:12:50
    ASCII码的表示 单位换算: 字,字长: 数制之间的转换: 十进制->二进制 除二取余 二进制->十进制 乘二取整 二进制->十六进制 四位二进制代替一位十六进制 码制: 原码  正数:符号位为0,...
  • 众所周知计算机的底层都是用2进制表示某些信息的,最初的时候美国人为了表示一个完整的字节制定了一套规范,这套规范就是ascii码,当时ascii码共有126个字符,126换算二进制就是1111110。这样用7位二进制就可以...
  • http://baike.baidu.com/view/60408.htm?fr=aladdin在ASCII码中,一个英文字母(不分大小写)占一个字节的空间...一个二进制数字序列,在计算机中作为一个数字单元,一般为8位二进制数,换算为十进制。最小值0,最大...
  • 一个二进制数字序列,在计算机中作为一个数字单元,称为字节(byte),一般为8位(bit)二进制数,如在ASCII码中,一个英文字母(不分大小写)占一个字节的空间,一个中文汉字占两个字节的空间。符号:英文标点占一个...
  • 字节是二进制数据的单位,一个字节是一个8位长的二进制数。 ASCII码:一个英文字母(不分大小写)占一个字节的空间。一个二进制数字序列,在计算机中作为一个数字单元,一般为8位二进制数。换算为十进制,最小值-128...
  • 字节,比特,字符,位,单位换算

    万次阅读 2013-08-26 09:01:58
    字节(Byte): 一个英文字母(不分大小写)占一个字节的空间,一个中文汉字占两个字节的空间. 英文标点2占一个字节,中文标点占两个字节. 1字节(Byte) = 8位(bit) ...在ASCII码中,一个英文字母(不分
  • 字节(Byte):通常将可表示常用英文字符8位...一个二进制数字序列,在计算机中作为一个数字单元,一般为8位二进制数,如一个ASCII码就是一个字节,此类单位的换算为: 1千吉字节(KGB,KiloGigaByte)=1024吉字节 1吉字节(GB
  • 一个二进制数字序列,在计算机中作为一个数字单元,一般为8位二进制数。换算为十进制,最小值-128,最大值127。如一个ASCII码就是一个字节。 UTF-8编码:一个英文字符等于一个字节,一个中文(含繁体)等于三个字节...
  • 计算机常用单位,及单位换算

    千次阅读 2015-10-10 17:00:50
    一、存储单位1、位bit(比特Binary Digits): 存放一位二进制数,即 0 或 1,...一般一个ASCII码占用一个字节,一个汉字(国际码)占用两个字节,同样,一个英文标点占1字节,一个中文标点占2字节。3、字(word):
  • 一个字符占几个字节

    万次阅读 2017-11-21 09:48:41
    一个二进制数字序列,在计算机中作为一个数字单元,一般为8位二进制数,换算为十进制。最小值0,最大值255。如一个ASCII码就是一个字节。 UTF-8编码:  一个英文字符等于一个字节,一个中文(含繁体)等于三个...
  • 今天给儿子讲计算机中的“原码...因为之前学过一些二进制ASCII码,他也能点点头了解个大概。 背景讲完后,准备讲“原码-反码-补码”。可是书本上都是文字描述比较繁琐,看得我也都有点乱。所以,就用PPT把各种情况...
  • byte

    2017-11-14 21:11:44
    Byte 字节。计算机信息技术用于计量存储容量的一种计量单位,也表示一些计算机编程语言中的数据类型和语言...二进制数,换算为十进制,最小值0,最大值255。如一个ASCII码就是一个字节。 符号 : 英文标点占一个字节
  • 字节数组的介绍

    2019-12-20 13:09:26
    字节(Byte):字节是通过网络传输...一个二进制数字序列,在计算机中作为一个数字单元,一般为8位二进制数,换算为十进制。最小值:0 最大值:255 。如一个ASCII码就是一个字节,此类单位的换算为: 1KB(Kilobyt...
  • 字节、字符、位

    2015-11-12 16:44:00
    字节(Byte /bait/ n. [C])是计算机信息技术用于计量存储容量的一种计量单位,也...一个二进制数字序列,在计算机中作为一个数字单元,一般为8位二进制数,换算为十进制。最小值0,最大值255。如一个ASCII码就是...
  • C语言学习之——指针

    2018-07-26 10:44:49
    ASCII码:是一个二进制数字序列,在计算机中作为一个数字单元,一般为8位二进制数,换算为十进制。最小值-128,最大值127。一个ASCII码就是一个字节。一个英文字母(不分大小写)占一个字节的空间,一个中文汉字占两...
  • 编码

    2017-01-08 19:22:13
    一个二进制数字序列,在计算机中作为一个数字单元,一般为8位二进制数,换算为十进制。最小值0,最大值255。如一个ASCII码就是一个字节。 UTF-8编码  一个英文字符等于一个字节,一个中文(含繁体)...
  • 计算机单位

    2017-12-13 12:52:01
    一个二进制数字序列,在计算机中作为一个数字单元,一般为8位二进制数,换算为十进制。最小值0,最大值255。如一个ASCII码就是一个字节。 UTF-8编码:一个英文字符等于一个字节,一个中文(含繁体)等于三个字节。 ...

空空如也

空空如也

1 2 3 4 5
收藏数 89
精华内容 35
热门标签
关键字:

二进制ascii码换算