无忧启动论坛

 找回密码
 注册
搜索
系统gho:最纯净好用系统下载站投放广告、加入VIP会员,请联系 微信:wuyouceo
查看: 2509|回复: 2
打印 上一主题 下一主题

[求助] 请教各位老师,位运算符的问题

[复制链接]
跳转到指定楼层
1#
发表于 2018-4-2 07:45:56 | 只看该作者 回帖奖励 |正序浏览 |阅读模式
本帖最后由 wynew8au 于 2018-4-2 17:27 编辑

C语言,位运算符<< >> | 和 & 在运算的时候是否都是先转成 unsigned int 再进行运算的,
麻烦各位老师不吝赐教,谢谢。

#include <windows.h>
#include <stdio.h>
#include <string.h>
#include <stdlib.h>
int main(int argc, char *argv[])
{
int n = 4;
unsigned char tempx = 0xff;
tempx = (tempx<<n) >> n;
printf("%x\n",tempx);//得到 0xff
printf("%x\n",(tempx<<24) | 0x03);//得到 0xff000003

unsigned char tempxs = 0xff;
tempxs = tempxs<<n;
tempxs = tempxs>>n;
printf("%x\n",tempxs);//得到 0x0f
printf("%x\n",tempx & 0xF0);//得到 0xf0

system("pause");
return 0;
}
得到4个结果,0xff ,f0xff000003, 0x0f ,0xf0
3#
发表于 2018-4-2 12:35:47 | 只看该作者
下面是我试验的结果:

  1. user@ttyd:~$ cish
  2. [cling]$ true | false
  3. (int) 1, 0x00000001
  4. [cling]% true & false
  5. (int) 0, 0x00000000
  6. [cling]% true && false
  7. (bool) false
  8. [cling]% -1L | 0
  9. (long) -1, 0xffffffffffffffff
  10. [cling]% -1uL | 0
  11. (unsigned long) 18446744073709551615, 0xffffffffffffffff
  12. [cling]%
复制代码


就是说,长整数也可以进行 “位” 运算。无论有符号还是无符号的整数,都可以进行 “位” 运算。

上述试验平台是 cish 项目专用的。cish 是基于 cling 的一个 C++ 的解释器,同时又是一个 shell 命令解释器。

它的方便之处在于,你可以在命令行直接试验 C 语言或 C++ 的语句、函数、表达式,无需编译。


回复

使用道具 举报

2#
发表于 2018-4-2 08:51:08 | 只看该作者
是无符号整形哟,楼下继续。
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

小黑屋|手机版|Archiver|捐助支持|无忧启动 ( 闽ICP备05002490号-1 )

闽公网安备 35020302032614号

GMT+8, 2024-12-5 08:49

Powered by Discuz! X3.3

© 2001-2017 Comsenz Inc.

快速回复 返回顶部 返回列表