首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >类型转换

类型转换
EN

Stack Overflow用户
提问于 2012-08-07 18:13:28
回答 4查看 137关注 0票数 0

有人能告诉我这几行代码是做什么用的吗?

代码语言:javascript
复制
*(a++)  = (int)((value >> 16) & 0xFF) ;
*(a++)  = (int)((value >> 8) & 0xFF) ;  
*(a++)  = (int)((value & 0xFF)) ;

我知道它会检查这个值,如果它远大于16,它会将它转换为int类型,如果它远小于8,它也会这样做。但是,什么是

& 0xFF*(a++)是这样的吗?

EN

回答 4

Stack Overflow用户

回答已采纳

发布于 2012-08-07 18:16:12

我知道它会检查

它不检查任何东西,它不像数学中的<<符号,它的意思是“小得多”。要分解此行,请执行以下操作:

代码语言:javascript
复制
*(a++)  = (int)((value >> 16) & 0xFF);

16次

  • (>>)指针指向right
  • (&),从而丢弃向左的所有内容a
  • Increments shifts value将结果存储在a
  • Increments ands 0xFF所指向的地址处,使

指向某个“

  • ands
票数 2
EN

Stack Overflow用户

发布于 2012-08-07 18:15:14

(value>>16)

不,并不是很大。

代码语言:javascript
复制
It is shift right by 16 bits.

但是除以2的16倍会使它比以前小得多。

代码语言:javascript
复制
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
票数 1
EN

Stack Overflow用户

发布于 2012-08-07 18:18:22

代码语言:javascript
复制
*(a++)  = (int)((value >> 16) & 0xFF) ; 

是这样的:

代码语言:javascript
复制
aIntValue = value/65536;
aIntBalue = a%256;

代码语言:javascript
复制
*(a++)  = (int)((value >> 8) & 0xFF) ;   

是这样的:

代码语言:javascript
复制
aIntValue = value/256;
aIntValue = a%256;

代码语言:javascript
复制
*(a++)  = (int)((value & 0xFF)) ; 

是这样的:

代码语言:javascript
复制
aIntValue = a%256;

在代码的末尾,任一代码将aIntValut赋值给指向指针'a‘的值,然后将指针移到下一个元素。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/11843723

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档