社区
C语言
帖子详情
unsigned char 移位
shenmou
2007-05-10 11:48:59
unsigned char valChar;
unsigned int valInt;
valChar = 0x01;
valInt = valChar << 16
;;得到结果 valInt = 0x00010000;
安照道理,是不是valChar 移位的时候回溢出的。
...全文
490
7
打赏
收藏
unsigned char 移位
unsigned char valChar; unsigned int valInt; valChar = 0x01; valInt = valChar << 16 ;;得到结果 valInt = 0x00010000; 安照道理,是不是valChar 移位的时候回溢出的。
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用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求模后得到的数作为最终移位数量.以上结论都做过测试.
c语言
unsigned
char
相当于byte,那么如何使用呢,我们进行
移位
博客介绍了在CodeBlock IDE中进行C语言编程的相关内容。提到printf打印整型时%u和%d的区别,C语言中用
unsigned
char
替换byte类型。还进行了
移位
操作测试,证明了
char
与
unsigned
char
在内存中的差异,以及通过打印结果展示了相关二进制情况。
char
与
unsigned
char
本文详细探讨了
char
与
unsigned
char
两种数据类型之间的区别,包括它们的取值范围、输出方式的不同、
移位
操作的行为差异以及在字符串比较上的应用。
【转】vC++中
char
与
unsigned
char
(BYTE)的具体区别
本文详细探讨了C++中
char
与
unsigned
char
(BYTE)的区别,包括它们的取值范围、输出方式的不同、
移位
操作的影响以及比较时的行为差异,并通过示例程序展示了这些区别。
C语言中的
移位
操作
本文详细介绍了不同数据类型下的
移位
操作特点,包括
char
、short、int等有符号类型及
unsigned
char
、
unsigned
short、
unsigned
int等无符号类型的左移与右移操作。探讨了
移位
操作在汇编层面的实现原理及其在现代编译器中的应用。
vC++中
char
与
unsigned
char
(BYTE)的具体区别
本文详细探讨了
char
与
unsigned
char
两种数据类型之间的区别,包括它们的取值范围、输出方式的不同、
移位
操作的差异以及如何影响字符串和汉字的处理。
C语言
70,038
社区成员
243,247
社区内容
发帖
与我相关
我的任务
C语言
C语言相关问题讨论
复制链接
扫一扫
分享
社区描述
C语言相关问题讨论
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章