我正在尝试用C编写一个算法,该算法应该操纵一个词词。
假设我们有一个这样的单词:
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分为两个变量,例如:
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++;
}
}
}