高位转低位

功能:高位在前 与 低位在前 转换

时间:2013-08-28

#include <iostream>
using namespace std;

int main(void)
{
	int a = 0x01020304;
	int b = 0;

	for (int i = 0; i < 4; i++)
	{
		b |= ((a>>i*8) & 0xff) << (3-i)*8;
	}

	cout << hex << a << endl;
	cout << hex << b << endl;

	return 0;
}

感觉有点山寨。。
寄存器高位低位是寄存器存储数据时的不同部分,在计算机系统中有着重要的概念、作用和相关知识。 ### 概念 寄存器是中央处理器内有限存贮容量的高速存贮部件,可暂存指令、数据和位址。字由高位字节和低位字节组成,使用16位寄存器存储时,高八位存放高位字节,低八位存放低位字节。在存储字时,需要两个地址连续的内存单元,低位字节存放在低地址单元,高位字节存放在高地址单元,这体现了寄存器高位低位对应不同的数据部分和存储位置 [^1][^2]。 ### 作用 - **数据存储与表示**:寄存器的高位低位共同完成数据的存储。例如在16位寄存器中,能够存储更大范围的数据,相比8位寄存器有更丰富的数据表示能力。 - **指令处理**:在中央处理器的控制部件和算术及逻辑部件中,寄存器参与指令的执行和数据的运算,高位低位的数据在不同的运算和处理步骤中发挥作用。比如累加器(ACC)在进行算术运算时,数据的高位低位按照运算规则进行处理 [^1]。 - **地址指示**:像CS(代码段寄存器)和IP(指令指针寄存器)这类关键寄存器,它们的值共同指示了CPU当前要读取指令的地址,高位低位数据的组合确定了准确的内存地址 [^3]。 ### 相关知识 - **存储顺序**:在数据存储中存在大端序和小端序。小端序中,数据的低位字节存放在低地址单元,高位字节存放在高地址单元;而大端序则相反。如存放数据20000(4E20H)在0、1两个内存单元中,小端序下0号单元(低地址)存放低位字节20H,1号单元(高地址)存放高位字节4EH [^2]。 - **数据传输与发送顺序**:在数据传输时,有高位先发和低位先发之分。例如数据0x55(二进制01010101),高位先发时发送顺序是从最高位D7到最低位D0;低位先发则是从最低位D0到最高位D7 [^4]。 ### 代码示例 以下是高位先发和低位先发的代码示例: ```python # 高位先发 cmd = 0x55 for i in range(7, -1, -1): bit = (cmd >> i) & 0x01 if bit: print("拉高") else: print("拉低") # 低位先发 cmd = 0x55 for i in range(8): bit = cmd & 0x01 if bit: print("拉高") else: print("拉低") cmd >>= 1 ```
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值