zoukankan      html  css  js  c++  java
  • 【笔记】汇编的基础知识~ 算是 第一章

    进制转换:
    H=>十六进制   D=>十进制   O=>八进制  B=>二进制
        将二进制转换为十进制
            1011100B=(1*2^6)+(0*2^5)+(1*2^4)+(1*2^3)+(1*2^2)+(0*2^1)+(0*2^0)=92D
        将十六进制转换为十进制
            3A4H=(4*16^0)+(10*16^1)+(3*16^2)=932D
        十六进制和二进制
            0011 0101 1011 1111
            0011 0101 1011 1111
             ↓    ↓       ↓    ↓
             3      5    B    F    //    直接转换 为十进制 然后转换为十六进制  二进制4位是十六进制的一位
                                    //    Eg:   Fh=15d=1111b    以此类推
        十六进制->十进制    
            注意:用取余法    //算完全部的数字后再写余数和除数~
        
    
    有符号数和无符号数
        1.八位        有符号
            10000000 => -128
            01111111 =>  127//第一个位是符号
        2.十六位    有符号
            1000000000000000~0111111111111111 ==(-32768~32767)
    //那个‘1 ’既代表符号位,也代表数字位  还没有学补码和反码~~
        1.八位        无符号
            11111111==255
        2.十六位    无符号
            1111111111111111==65535
    3.扩展?    
            常常需要把一个n位扩展成m位二进制数(m>n)
            当扩展的数是无符号数时,只要在最高位前扩展(m-n)个0
            例如:21的8位二进制和16位的二进制补码如下:(补码?   好像还没讲)
                        00010101     8位
                0000000000010101    16位
    
    4.补码的加法和减法
        对一个整数的补码表示按位求反后再在末尾加1,可以得到与此正数相应的负数的补码表示。
        把这种对一个二进制按位求反后在末尾加1的运算称为求补运算;
            可以证明补码表示的数具有以下特征:
                [X]=>[-X]//取反 末尾加一就是取反 正反的都可以取反
                
                
                
    补码的加减法 【很重要】
        [-117]补=FF8Bh  对[-117]补作求补运算:
        [-117]补为:    1111 1111 1000 1011
        按位求反:        0000 0000 0111 0100
        末尾加一:        0000 0000 0111 0101
            这个数就是:[+117]补=0075H
        这个特性在补码的加、减中很有用(看出来了!!!)
                补码的加法规则是:    [X+Y]补=[X]补+[Y]补
                补码的加减法规则是:[X-Y]补=[X]补+[-Y]补
        例子:25+(-32)
            25                    00011001
        + (-32)                +  11100000
        ---------              -------------
           -7                    11111001
           /*就是32的求补然后再计算  结果11111001是7的补码所以是-7*/
           
           
    非数据的表示:
        除了数值(比如ABC和图表),为了处理要进行编码!!这样才可方便存储~而且还可赋予他们数值的数据操作属性【没什么用,说的都是废话!】
        当然典型的就是ASCII码了~(用的7位二进制编码)
            比较常用的:
                空格    20H        
                0~9        30H=0....
                 A        41H...
                 a        61H...
    
    字节~
        一个字节是8个位
        7  6  5  4  3  2  1  0(图)
        
        
        分开两半就是半个字节
        两个字节是一个字就是16个;
        15  14  13  12  11  10  9  8  7  6  5  4  3  2  1  0(图)
        
        双字节
        里面有32个位,高位就是高字,低的就是低位
        
        四字
        里面有64个!!!
        
        TM还有十字!!!
        80个位(WCL)
        
    //终于没了
    下面字符串~
        一个线性的字符数组,一个字符是个字或者双字~~
        
        
    收货会了就过~!!!
    收货:
            
        1.一个进制转换~O D H B
        2.一个数据和非数据的表示~
        3.补码~ 加减法不容易
        4.十六进制转二进制,直接看
        
        
        
    ~~还有题~??
        1.
            32767D=>为??H
            255D=>为??H
        
        2.补码表示,还有带符号数和无符号数时,他们表示的十进制是什么
        
            Eg:补码    
                D8H->11011000B
                无符号:(1*2^7)+(1*2^6)+(0*2^5)+(1*2^4)+(1*2^3)+(0*2^2)+(0*2^1)+(0*2^0)=216D
                有符号:把11011000按位取反末尾加一
                          00101000    为:-40D
                    
            FFH是什么???
        
        
        
    
    哇哈哈哈  计算补码的时候出错了~
      32是100000 但是怎么也算不出来他的补码是11100000
              最后 才知道...我忘记了加前面的000 要按照8位或者16位计算才可~【加个重】
  • 相关阅读:
    0x02 枚举、模拟、递推
    0x01 位运算
    bzoj3529: [Sdoi2014]数表
    bzoj5216: [Lydsy2017省队十连测]公路建设
    POJ1789Truck History
    最小生成树模板
    POJ1258Agri-Net
    POJ1860Currency Exchange(SPFA)
    POJ3083Children of the Candy Corn
    POJ2503Babelfish
  • 原文地址:https://www.cnblogs.com/xiguayizu/p/3340148.html
Copyright © 2011-2022 走看看