问几题c语言的题目
1个回答
关注
展开全部
unsigned char a,b,c;//定义变量scanf("%X",&a);//&a取出a的地址,scanf要求给出变量地址,以16进制储存到a变量b=(a&0XF0)>>4//&按位与操作,规则只有1&1=1,剩下的情况都得0,b的值为a的高4位,然后将这4位右移值第四位,就是把a的高4位存到b的低四位c=(a&0X0F)<<4//同理,把a的低4位存到c的高4位
咨询记录 · 回答于2023-03-10
问几题c语言的题目
第一个问题,b是char类型,不能用%d第二个问题,%*d,表示跳过了20这个数,直接读取30第三个问题,12 34(输出里面有空格)第五个问题,因为i++中的i已经是前面那个++i中的3了
可以通过按位或(|)操作和移位(<<)操作来实现。具体实现方式如下:unsigned char a = 0b01001011; // 假设a的二进制表示为01001011int n = 3; // 假设要将a的第3位(从0开始计数)置为1a |= (1 << n); // 将1左移n位,得到一个只有第n位是1的数,然后和a按位或,将a的第n位置为1在执行完上述代码后,变量a的值将变为01011011。
unsigned char a,b,c;//定义变量scanf("%X",&a);//&a取出a的地址,scanf要求给出变量地址,以16进制储存到a变量b=(a&0XF0)>>4//&按位与操作,规则只有1&1=1,剩下的情况都得0,b的值为a的高4位,然后将这4位右移值第四位,就是把a的高4位存到b的低四位c=(a&0X0F)<<4//同理,把a的低4位存到c的高4位