有人能告诉我这几行代码是做什么用的吗?
*(a++) = (int)((value >> 16) & 0xFF) ;
*(a++) = (int)((value >> 8) & 0xFF) ;
*(a++) = (int)((value & 0xFF)) ;我知道它会检查这个值,如果它远大于16,它会将它转换为int类型,如果它远小于8,它也会这样做。但是,什么是
& 0xFF和*(a++)是这样的吗?
发布于 2012-08-07 18:16:12
我知道它会检查
它不检查任何东西,它不像数学中的<<符号,它的意思是“小得多”。要分解此行,请执行以下操作:
*(a++) = (int)((value >> 16) & 0xFF);16次
>>)指针指向right&),从而丢弃向左的所有内容avalue将结果存储在a0xFF所指向的地址处,使指向某个“
发布于 2012-08-07 18:15:14
(value>>16)
不,并不是很大。
It is shift right by 16 bits.但是除以2的16倍会使它比以前小得多。
val&0xff makes a solution if it is divisible by 256. For example: if val&0xff is different than zero, than it is not divisible by 256发布于 2012-08-07 18:18:22
*(a++) = (int)((value >> 16) & 0xFF) ; 是这样的:
aIntValue = value/65536;
aIntBalue = a%256;*(a++) = (int)((value >> 8) & 0xFF) ; 是这样的:
aIntValue = value/256;
aIntValue = a%256;*(a++) = (int)((value & 0xFF)) ; 是这样的:
aIntValue = a%256;在代码的末尾,任一代码将aIntValut赋值给指向指针'a‘的值,然后将指针移到下一个元素。
https://stackoverflow.com/questions/11843723
复制相似问题