C语言把int型变量A高位赋值给char型变量B;其中int 型为16位,char型变量为8位;

日期:2017-09-16 04:08:10 人气:1

C语言把int型变量A高位赋值给char型变量B;其中int 型为16位,char型变量为8位;

右移操作需要区分有符号右移和无符号右移,无符号数右移时在前面补零,有符号数右移时在前面补符号位(0或1) 本题16位int型转化为8位char型,int型的高8位将被阶段,实际传给char型的数值只有低8位,可以用: B = (char)(A>>8);实现, 加上后面的&有利于代码的规整性与可读性(表明你考虑到了右移操作的有符号和无符号的区别),可以这样写: B = (char)((A>>8)&0x00ff);(注意括号与优先级,强制转换优先级高于&)
    A+
热门评论