这跟你的编译器有关吧,如果是keil c51 应该是是左移一位,最低位补零。具体你可以反汇编看一下。
scanf("%lu",&n);n=crol(n,1);printf("%lu\n",n);return 0;}
先说左移,左移就是把一个数的所有位都向左移动若干位,在C中用<<运算符。例如:inti=1;i=i<<2;//把i里的值左移2位 左移就是:丢弃最高位,0补最低位
管深影做同边容C语言问题,在位运算中,管深影做同边容操作数管深影做同边容[1]管深影做同边容管深影做同边容每右移一位,其结果相当于什么?若左移1位,其结果相当于什么?管深
C语言问题,在位运算中,操作数每右移一位,其结果相当于什么?若左移1位,其结果相当于什么? 答案: 右移,除以2 右移n位 除以2的n次方 左移,乘以2 左移n位 乘以2的n次方 比如5,5的二进制表示是101那么右移一位之后是10就是2了,是整除的,左移的话就是在后面补一个零,相当于是乘以二,那么变成了1010,...
解析 右移,除以2 左移,乘以2 结果一 题目 C语言问题,在位运算中,操作数每右移一位,其结果相当于什么?若左移1位,其结果相当于什么? 答案 右移,除以2 左移,乘以2相关推荐 1C语言问题,在位运算中,操作数每右移一位,其结果相当于什么?若左移1位,其结果相当于什么?
请问1001二进制数..不保留符号位#include<stdio.h>int main(){ char c= 0xc1; // 1100 0001 printf("1100 0001
那要看你把二进制数1000 0000赋什么类型的变量:1.赋给char型变量时,左移一位得到的值是0000 0000;2.赋给int型变量时,左移一位得到的值是10000 0000;3.赋给long、unsigned型变量时,左移一位得到的值也是10000 0000;4.C/C++中的整数都是补码。
浮点比较特殊,和整数有点区别,我还没见过浮点位运算呢,浮点是作为两个整数分开存储的,一个作为整数位,另一个作为小数位,而位运算只是针对整数。不过相乘就可以。
右移对符号位的处理和左移不同,对于有符号整数来说,比如int类型,右移会保持符号位不变,例如:inti=0x80000000;i=i>>1;//i的值不会变成0x40000000,而会变成0xc0000000 2、左移,乘以2左移n位乘以2的n次方;先说左移,左移就是把一个数的所有位都向左移动若干位,在C中用<<运算符。