在 C 中操作 WORD 的循环
A loop to manipulate a WORD in C
我正在尝试用 C 编写一个算法,该算法应该操纵一个 hipotical WORD。
假设我们有这样一个词:
WORD testStart = 0x000;
现在我需要增加值以达到 0xFFF。但我需要将最后一个字节从 00 递增到 FF,并将第一个半字节从 0 递增到 F。
有没有办法达到那个结果?
我在 C 语言方面不是很熟练,我注意到对于整数我可以使用“++”运算符,但是如果我这样做:
test+=125;
无法正常工作...
回顾:
WORD testStart,testEnd;
testStart = 0x000;
testEnd = 0xFFF;
while(1){
if(testStart < testEnd ){
if(testStart%25==0)
testStart+=0x7D; //If byte is multiple of 25 I want to add 1 to the nibble value
else
testStart++; //else just add 1 to byte
}
}
谢谢!
您应该能够做到以下几点:
WORD testStart,testEnd;
testStart = 0x000;
testEnd = 0xFFF;
while(testStart != testEnd) testStart++;
您可以将该 WORD 分成两个变量,比方说:
WORD x = 0xFF;
WORD y = 0xF;
然后通过编写构造结果:
WORD z;
z = x + (y << 8);
如果我没理解错的话,你正在找这个:
WORD testStart, testEnd, byte, nibble; //replace with names of your liking
testEnd = 0xFFF;
byte = 0x00;
nibble = 0x0;
while(1){
testStart = byte + (nibble << 8);
if(testStart < testEnd )
{
if(byte == 0xFF)
{
nibble++;
}
else //byte is not 0xFF
{
byte++;
}
}
}
我正在尝试用 C 编写一个算法,该算法应该操纵一个 hipotical WORD。
假设我们有这样一个词:
WORD testStart = 0x000;
现在我需要增加值以达到 0xFFF。但我需要将最后一个字节从 00 递增到 FF,并将第一个半字节从 0 递增到 F。
有没有办法达到那个结果?
我在 C 语言方面不是很熟练,我注意到对于整数我可以使用“++”运算符,但是如果我这样做:
test+=125;
无法正常工作...
回顾:
WORD testStart,testEnd;
testStart = 0x000;
testEnd = 0xFFF;
while(1){
if(testStart < testEnd ){
if(testStart%25==0)
testStart+=0x7D; //If byte is multiple of 25 I want to add 1 to the nibble value
else
testStart++; //else just add 1 to byte
}
}
谢谢!
您应该能够做到以下几点:
WORD testStart,testEnd;
testStart = 0x000;
testEnd = 0xFFF;
while(testStart != testEnd) testStart++;
您可以将该 WORD 分成两个变量,比方说:
WORD x = 0xFF;
WORD y = 0xF;
然后通过编写构造结果:
WORD z;
z = x + (y << 8);
如果我没理解错的话,你正在找这个:
WORD testStart, testEnd, byte, nibble; //replace with names of your liking
testEnd = 0xFFF;
byte = 0x00;
nibble = 0x0;
while(1){
testStart = byte + (nibble << 8);
if(testStart < testEnd )
{
if(byte == 0xFF)
{
nibble++;
}
else //byte is not 0xFF
{
byte++;
}
}
}