`
waret
  • 浏览: 139436 次
  • 性别: Icon_minigender_1
  • 来自: 天津
文章分类
社区版块
存档分类
最新评论

一些变量移位后的结果

 
阅读更多

15 :
    15 = 15            00000000000000000000000000001111
    15<<4 = 240        00000000000000000000000011110000
    15>>4 = 0        00000000000000000000000000000000

-15 :
    -15 = -15        11111111111111111111111111110001
    -15<<4 = -240        11111111111111111111111100010000
    -15>>4 = -1        11111111111111111111111111111111

signed int ival1 = 15 :
    ival1 = 15        00000000000000000000000000001111
    ival1<<4 = 240        00000000000000000000000011110000
    ival1>>4 = 0        00000000000000000000000000000000

signed int ival2 = -15 :
    ival2 = -15        11111111111111111111111111110001
    ival2<<4 = -240        11111111111111111111111100010000
    ival2>>4 = -1        11111111111111111111111111111111

unsigned int uival1 = 15 :
    uival1 = 15        00000000000000000000000000001111
    uival1<<4 = 240        00000000000000000000000011110000
    uival1>>4 = 0        00000000000000000000000000000000

unsigned int uival2 = -15 :
    uival2 = 4294967281    11111111111111111111111111110001
    uival2<<4 = 4294967056     11111111111111111111111100010000
    uival2>>4 = 268435455     00001111111111111111111111111111

char cval1 = 65 :
    cval1 = A        01000001
    (int)cval1 = 65        00000000000000000000000001000001
    (uint)cval1 = 65    00000000000000000000000001000001
    cval1<<4 = 1040        00000000000000000000010000010000
    cval1>>4 = 4        00000000000000000000000000000100

char cval2 = -65 :
    cval2 = ¿        10111111
    (int)cval2 = -65    11111111111111111111111110111111
    (uint)cval2 = ¿        11111111111111111111111110111111
    cval2<<4 = -1040    11111111111111111111101111110000
    cval2>>4 = -5        11111111111111111111111111111011

signed char scval1 = 65 :
    scval1 = A        01000001
    (int)scval1 = 65    00000000000000000000000001000001
    (uint)scval1 = 65    00000000000000000000000001000001
    scval1<<4 = 1040    00000000000000000000010000010000
    scval1>>4 = 4        00000000000000000000000000000100

signed char scval2 = -65 :
    scval2 = ¿        10111111
    (int)scval2 = -65    11111111111111111111111110111111
    (uint)scval2=4294967231    11111111111111111111111110111111
    scval2<<4 = -1040    11111111111111111111101111110000
    scval2>>4 = -5        11111111111111111111111111111011

unsigned char ucval1 = 65 :
    ucval1 = A        01000001
    (int)ucval1 = 65    00000000000000000000000001000001
    (uint)ucval1 = 65    00000000000000000000000001000001
    ucval1<<4 = 1040    00000000000000000000010000010000
    ucval1>>4 = 4        00000000000000000000000000000100

unsigned char ucval2 = -65 :
    ucval2 = ¿        10111111
    (int)ucval2 = 191    00000000000000000000000010111111
    (uint)ucval2 = 191    00000000000000000000000010111111
    ucval2<<4 = 3056    00000000000000000000101111110000
    ucval2>>4 = 11        00000000000000000000000000001011

signed short sval1 = 15 :
    sval1 = 15        0000000000001111
    (int)sval1 = 15        00000000000000000000000000001111
    (uint)sval1 = 15    00000000000000000000000000001111
    sval1<<4 = 240        00000000000000000000000011110000
    sval1>>4 = 0        00000000000000000000000000000000

signed short sval2 = -15 :
    sval2 = -15        1111111111110001
    (int)sval2 = -15    11111111111111111111111111110001
    (uint)sval2=4294967281    11111111111111111111111111110001
    sval2<<4 = -240        11111111111111111111111100010000
    sval2>>4 = -1        11111111111111111111111111111111

unsigned short usval1 = 15 :
    usval1 = 15        0000000000001111
    (int)usval1 = 15    00000000000000000000000000001111
    (uint)usval1 = 15    00000000000000000000000000001111
    usval1<<4 = 240        00000000000000000000000011110000
    usval1>>4 = 0        00000000000000000000000000000000

unsigned short usval2 = -15 :
    usval2 = 65521        1111111111110001
    (int)usval2 = 65521    00000000000000001111111111110001
    (uint)usval2 = 65521    00000000000000001111111111110001
    usval2<<4 = 1048336    00000000000011111111111100010000
    usval2>>4 = 4095    00000000000000000000111111111111

分享到:
评论

相关推荐

    有趣的内存移位_内存地址移位_cpp移位_算法设计_

    例如,如果变量x的值为10(二进制为1010),那么x 的结果将是40(二进制为101000)。在C++中,左移运算符可以用来快速乘以2的幂次。 2. 右移运算符(&gt;&gt;):右移运算符将所有位向右移动指定的次数。对于有符号整数,...

    11课 LED流水灯 循环移位方式 中间变量循环.zip

    这种方式的核心在于变量的循环使用,即在移位操作后,最末尾的位(或最前端的位)的状态将被移到另一端,形成一个闭环的控制逻辑。 在实现“中间变量循环”的过程中,编程者需要确保数据在移位过程中,能够通过某些...

    移位寄存器的实现

    移位寄存器是一种在数字逻辑电路中广泛使用的器件,它能够存储一组二进制数据,并根据特定的控制信号对这些数据进行移位操作。在本文中,我们将深入探讨移位寄存器的概念、种类、工作原理以及如何通过数组实现移位...

    移位相加实现乘法

    4. 完成所有位的检查后,结果变量就包含了乘法的结果。 以乘法5(101)乘以3(11)为例,我们可以逐步展示这个过程: - 初始化结果为0。 - 因子3的二进制表示为11。 - 遍历二进制位: - 第一位是1,将5左移1位...

    移位加密解密.rar

    可能需要对解密后的代码进行适当的调整,使其能够正确运行,尤其是在涉及到变量、条件判断或循环等逻辑结构的地方。 总的来说,这个压缩包提供了一个关于移位加密解密的实际应用案例,对于学习和研究加密技术,尤其...

    双向移位寄存器

    2. **创建寄存器变量**:创建一个标准的VHDL数组类型,用于存储寄存器中的位。数组的下标范围从0到数据宽度减1。 3. **编写进程**:定义一个进程,包含时钟、复位和移位控制信号作为输入。在这个进程中,根据移位...

    C语言中的移位操作技巧

    本文将重点介绍几种常用的移位操作技巧,包括如何将变量的某一位或某几位清零、如何对变量的某几位进行赋值以及如何对变量的某一位进行取反操作。 #### 二、把变量的某位清零 在实际编程中,经常需要对变量中的某...

    移位相加乘法器(Debug后)1

    移位相加乘法器(Debug后) 移位相加乘法器(Debug后)是一种数字电路设计,使用Verilog语言描述。下面是该设计的详细知识点: 1. 模块结构: 移位相加乘法器(Debug后)模块由两个部分组成:mult_shift_add模块...

    通过构造最大一致分布子集在协变量移位下训练分类器

    实验结果表明,采用这种子集训练的分类器在协变量移位设定下,相比于传统方法具有更好的泛化性能和更高的运行效率。 6. 传统分类方法(Traditional Classification Methods):文章在引言部分提到了支持向量机...

    LCD 显示变量的功能 字符很简单 显示变量要一位一位的

    - **移位操作**:逐位显示变量时,常用的方法是通过移位操作将数值左移或右移,每次只显示最高位或最低位。 - **循环显示**:如果变量超过单个字符位宽,可采用循环显示方式,不断更新LCD显示的内容,使得每位都能...

    编程过程中常见移位操作

    ### 编程过程中常见移位操作 在计算机科学与编程领域中,位操作是一类非常高效且基础的操作方法,能够帮助开发者实现对数据结构的快速处理。本文将围绕标题“编程过程中常见移位操作”以及描述中提到的概念,如位...

    课程设计:移位加密解密算法的实现

    3. **输出结果**:将加密后的文本输出到控制台或文件。可以使用标准输出流(cout)或文件流(fstream)。 4. **解密过程**:解密是加密的逆过程,只需将移位数用负值表示,即可将密文还原成原文。 5. **错误处理**...

    循环移位寄存器(vhdl)及仿真

    在这个例子中,我们定义了一个实体(entity)DSR,它接收输入数据、移位方向、时钟和复位信号,并输出移位后的数据。在行为架构中,我们使用一个进程来描述时钟边沿触发的移位操作。根据移位方向,数据在时钟上升沿...

    线形移位寄存器源码,可运行

    一旦打开源代码,我们可以看到具体的变量定义、函数实现、循环结构和条件语句等,这些都是实现移位操作和反馈逻辑的关键部分。 为了充分利用这个程序,开发者或学习者应当熟悉如何编译和运行VC++项目,理解代码中的...

    通用移位寄存器VHDL代码及test bench代码

    在理解了这些核心概念后,你可以通过编译和仿真上述VHDL代码,观察测试平台的输出,来验证移位寄存器的正确功能。这不仅加深了对移位寄存器原理的理解,也展示了如何使用VHDL进行硬件描述和验证。

    matlab随机变量

    3. **单变量平方移位法**:这是一种基于对单个变量进行平方和移位操作的生成方法。 4. **加法-进位法和减法-借位法**:这些方法是通过对两个或多个随机数进行算术运算并处理进位或借位来生成新的随机数。 5. **...

    计算机组成原理-移位运算.ppt

    逻辑“或”运算是指两个逻辑变量中至少有一个为真时,结果为真。逻辑“非”运算是指逻辑变量的取反。逻辑“异或”运算是指两个逻辑变量不同时,结果为真。 移位运算是计算机组成原理中的一种基本运算操作,它有广泛...

    负数移位运算讲解

    4. **转换回补码形式**:将左移后的结果再次转换为补码形式,以便能够正确地表示为负数。 ``` 1001 0001 0101 1111 ``` 5. **最终结果**:最终结果转换为十进制形式,得到-4440。 #### 负数右移运算 继续以...

    循环移位与改进插入排序算法

    2. **循环缓存**:在循环移位过程中,将需要移动的元素存储在一个临时变量中,避免多次赋值操作。 3. **预判优化**:在循环移位之前,先判断是否需要进行移位操作,如果当前位置的元素已经小于等于前一个元素,则...

Global site tag (gtag.js) - Google Analytics