C语言大一新生
C语言大一新生
C语言大一新生
∽(∽0<<4) ?
5条回答 默认 最新
- a5156520 2024-02-16 13:59关注
~ ( ~ 0 << 4 )的执行过程,大致如下:
设置一个低4位全为1,其余为全为0的数:
首先对0取反(~)后的低8位为: 1111 1111 ,其余为都为1;
然后左移4位后的低8位为:1111 0000 ,其余位为1;
然后再取反后的低8位为:0000 1111,其余位为0;
经过以上几个步骤,即得到前面提到的数 。
测试如下:
参考链接:C语言scanf:读取从键盘输入的数据(含输入格式汇总表) 程序是人机交互的媒介,有输出必然也有输入,第三章我们讲解了如何将数据输出到显示器上,本章我们开始讲解如何从键盘输入数据。在C语言中,有多个函数可以从键盘获得用户输入 https://c.biancheng.net/view/1795.htmlC 运算符 | 菜鸟教程 C 运算符 运算符是一种告诉编译器执行特定的数学或逻辑操作的符号。C 语言内置了丰富的运算符,并提供了以下类型的运算符: 算术运算符 关系运算符 逻辑运算符 位运算符 赋值运算符 杂项运算符 本章将逐一介绍算术运算符、关系运算符、逻辑运算符、位运算符、赋值运算符和其他运算符。 算术运算符 下表显示了 C 语言支持的所有算术运算符。假设变量 A 的值为 10,变量 B 的值为 20,则: 运算符描述实例 +把两个操作数相加 .. https://www.runoob.com/cprogramming/c-operators.html#include <stdio.h> int main(void){ unsigned a,b,c,d; printf("请输入整数:\n"); // https://c.biancheng.net/view/1795.html // 从输入获取一个八进制整数,存入变量a中 // 输入八进制数36,其对应的二进制数的低8位为:0001 1110 ,其余为都为0 scanf("%o",&a); // https://www.runoob.com/cprogramming/c-operators.html // 第一步: // 将a右移4位的结果赋值给b,即将整数a的第4到第7位移到第0到第3位 // a右移4位后的低8位为:0000 0001 ,其余位都为0 b=a>>4; // 第二步: // 设置一个低4位全为1,其余为全为0的数 // 首先对0取反(~)后的低8位为: 1111 1111 ,其余为都为1 // 然后左移4位后的低8位为:1111 0000 ,其余位为1 // 然后再取反后的低8位为:0000 1111,其余位为0 // 经过以上几个步骤,即得到前面提到的数 c=~(~0<<4); // 第三步: // 用第一步和第二步的结果进行按位与(&)操作,即得到整数a的第4到第7位的数 // 输入:36 // 第一步的低8位为:0000 0001,其余位为0 // 第二步的低8位为:0000 1111 ,其余位为0 // 然后它们进行按位与操作后的低8位为:0000 0001,其余位为0,即将整数a的第4到第7位提取出来 d=b&c; // 以八进制的形式打印a和提取出的第4到第7位的数 printf("%o\n%o\n",a,d); return 0; }
本回答被题主选为最佳回答 , 对您是否有帮助呢?解决 无用评论 打赏 举报 编辑记录
悬赏问题
- ¥15 数学建模求思路及代码
- ¥50 silvaco GaN HEMT有栅极场板的击穿电压仿真问题
- ¥15 谁会P4语言啊,我想请教一下
- ¥15 哪个tomcat中startup一直一闪而过 找不出问题
- ¥15 这个怎么改成直流激励源给加热电阻提供5a电流呀
- ¥50 求解vmware的网络模式问题 别拿AI回答
- ¥24 EFS加密后,在同一台电脑解密出错,证书界面找不到对应指纹的证书,未备份证书,求在原电脑解密的方法,可行即采纳
- ¥15 springboot 3.0 实现Security 6.x版本集成
- ¥15 PHP-8.1 镜像无法用dockerfile里的CMD命令启动 只能进入容器启动,如何解决?(操作系统-ubuntu)
- ¥30 请帮我解决一下下面六个代码