移位寄存器一个最普遍的应用,是数据传输过程中,串行接口和并行接口的转换。这在许多并行传输一组比特数据的电路中很有用,因为它们常常也使用了在结构上更为简单的串行接口。移位寄存器可以被用作一个简单的延迟电路。许多双向移位寄存器可以在并行传输中作为堆栈的硬件实现方式。
串入并出形式的移位寄存器经常与微处理器连接,这样做的原因主要是需要的引脚数多于微处理器能够提供的数量。通过使用移位寄存器,可以只依靠两三个引脚,而被控制设备的控制位分别连接在移位寄存器的并行输出端。由此,微处理器可以以串行的方式一次写入这些设备的各个控制位。类似的,并入串出接法的移位寄存器在多个外部设备向微处理器传输数据时较为常用,外部设备以并行的方式将数据输入到移位寄存器里,然后移位寄存器以串行的方式将数据一位一位地输出给微处理器,这样,外部设备的大量信息可以通过少数几条线到达微处理器。
在早期的计算机中,移位寄存器被用来进行数据处理:两个相加的数被存储在两个移位寄存器里,然后它们按照时间脉冲被输出到算术逻辑单元,结果中多出的一位以反馈的形式重新被输入到其中一个移位寄存器(累加器)。注意两个一位二进制数相加的结果只可能是一位(如0+0=0,0+1=1)或者两位(1+1=10)。
一些计算机语言内置了移位指令,这类指令可以让二进制数据在寄存器中进行左移或右移操作。左移或右移一位,相当于乘以2或除以2。
一些1970年代早期的设备曾以类似延迟线存储器的方式用过非常大规模的串入串出移位寄存器,其规模达到上千位。这类存储器有时被称为循环存储器(circulating memory)。例如,DataPoint 3300将其25列、72行的字符显示数据存储在54个200位的移位寄存器里,以6个堆栈、每个堆栈9个包的形式排列,提供了1800个6位字符的存储能力。