社区
C语言
帖子详情
unsigned char 移位
shenmou
2007-05-10 11:48:59
unsigned char valChar;
unsigned int valInt;
valChar = 0x01;
valInt = valChar << 16
;;得到结果 valInt = 0x00010000;
安照道理,是不是valChar 移位的时候回溢出的。
...全文
465
7
打赏
收藏
unsigned char 移位
unsigned char valChar; unsigned int valInt; valChar = 0x01; valInt = valChar << 16 ;;得到结果 valInt = 0x00010000; 安照道理,是不是valChar 移位的时候回溢出的。
复制链接
扫一扫
分享
转发到动态
举报
AI
作业
写回复
配置赞助广告
用AI写文章
7 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
Michael_555
2007-05-10
打赏
举报
回复
valChar = 0x01;
valInt = valChar << 16
楼主是用VC、Dev-C++之类的32位的编程工具测试的吧, 因为他们的int为32位的。
如果换成TC2.0的之类的DOS平台编程工具,valInt就会等于0了
0黄瓜0
2007-05-10
打赏
举报
回复
C\C++中的移位运算都会转为unsigned int然后再移.
jixingzhong
2007-05-10
打赏
举报
回复
中间结果不是 unsigned char
eggqq007
2007-05-10
打赏
举报
回复
移位是不会造成溢出的。
yoyo_alex_lw
2007-05-10
打赏
举报
回复
兄弟,移位怎么会溢出呢?比如0x01,右移n(n>0)位,结果总是0x00.实在不懂,就看看汇编书
shenmou
2007-05-10
打赏
举报
回复
是我的问题没有表达清楚, 想要问的是 标准c 对这个有没有定义?
移位运算 中间结果转换为 int 有定义么?
yoyo_alex_lw
2007-05-10
打赏
举报
回复
我用vs2005做了一些测试.用sizeof(c<<n),sizeof(c>>n),无论n为何整数,size都是4,即4个字节,也就是说,c/c++语言在移位时,首先将数据转为32位数,经测试,32位数以补码形式存储.对于左移,无论被移位数是正数还是负数,末位都以0填充;如果是右移位,那么,正数移位时,高位以0填充,负数以1填充.移位数量以32求模后得到的数作为最终移位数量.以上结论都做过测试.
对偶反馈
移位
寄存器DSR
unsigned
char
DSR_MoveWord(
unsigned
char
*Const,
unsigned
char
*Array,
unsigned
long num){ int i,t;
unsigned
char
ch,Output=0x00; for(i=0;i;i++){ ch=(*Array)&0x80; t=ch?1:0; ch>>=i; Output^=ch;...
c代码-
char
和
unsigned
char
区别
由于`
unsigned
char
`总是非负的,进行右移操作时,空出来的高位会被补零,这对于逻辑
移位
非常方便。相反,对于带符号的`
char
`,右移操作可能会受到符号扩展的影响,即如果原数是负数,高位会被补上与其符号位相同的...
c51单片机流水灯-流水灯的实现,玩转流水灯
void heartSpark(
unsigned
int speed,
unsigned
char
n) {
unsigned
char
nCount = 16; //16次,完成一次流水灯动作
unsigned
char
i;
unsigned
int leftHeart; //P0-P1作为一组,由2字节的无符号整型变量
移位
...
头文件INTRINS.H的函数.pdf
unsigned
char
_crol_(
unsigned
char
val,
unsigned
char
n);
unsigned
char
_cror_(
unsigned
char
val,
unsigned
char
n);
unsigned
int _irol_(
unsigned
int val,
unsigned
char
n);
unsigned
int _iror_(
unsigned
...
16*16点阵用595和154做
595和154 #include #define BLKN 2 //列锁存器数 sbit G = 0x97; //P1.7为显示允许控制信号端口 sbit RCLK = 0x96; //P1.6为输出锁存器时钟信号端 sbit SCLR = 0x95;...
unsigned
char
code Bmp[][32]={
C语言
70,023
社区成员
243,263
社区内容
发帖
与我相关
我的任务
C语言
C语言相关问题讨论
复制链接
扫一扫
分享
社区描述
C语言相关问题讨论
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章