1楼:丿心灬暖暖灬
左移一位后最右位bai补du0,移几位补几个0;
左移时最zhi高位在c里面丢dao
弃了。因为内汇编里面只
有两容种移位:不带cy的循环移位 和带cy的循环移位。cy是进位标志位
不带cy的循环移位是假设左移的话,是把最左位放到最右位了。
带cy的把最左位放进cy,cy的原值放最右位。
c语言的左移运算可以理解为先将cy置0,然后执行带cy的循环移位操作。移位后cy的值是原来的最左位,cy里的0被移到最右位
c语言 左移位的问题,求大神,帮忙解释一下!!!
2楼:风雷雪电
aa==0x12(0x表示十六进制,十六进制12,十进制是16+2==18),二进制0001 0010
左移3位,二进制1001 0000,十六进制0x90,十进制144。
左移4位,二进制0001 0010 0000,十六进制0x120,十进制288。
你确定是printf("%d\n",aa<<3);吗?可能是这个吧:printf("%x",aa<<3);,%x表示十六进制输出。
3楼:觉悟壮志
aa=0001`
0010(2).
aa<<3=000`1001`0000=90(10)(就是在后面填3个0,结果和输出一样)
aa<<4=0001`0010`0000=120(10)(也和输出一样)
楼上好像都不对
4楼:匿名用户
你说的也不对
aa为18
aa<<3,相当于乘8,显示144.
aa<<4,相当于乘16,显示288
我用c++builder6 试过了。
关于c语言左移/右移的问题 20
5楼:我瓦解的精彩
hbyte_later = hbyte << 8; //这里并没有使hbyte成为0!!而是hbyte_later=0
0100 1010 //这是4a的二进制
1000 0000 //这是80的二进制
4a左移8位
0100 1010 0000 0000 //对应的10进制值为18944,且80对应的10进制为127
/**18944+127为什么不能等于19072?
*/这次答题,这么用心,题主还是多给点分吧
c语言 左移 右移的问题 << 或 >>
6楼:匿名用户
左移 右移不会修改a本身
a=ox32 (16进制) 0011 0010b=a<<2
这个时候b=1100 1000 对
那么此时a=0011 0010
继续c=a<<2
请问c是在原来a的初值(ox32)上移动
这个时候c=1100 1000
7楼:围城
b=a<<2
这个时候b=1100 1000 对!
那么此时a=0011 0010 没变
接着c=a<<2
c是在原来a的初值上移动,因为a没变
c=b=1100 1000
最后c=b=1100 1000
a=0011 0010
8楼:匿名用户
a << 2 是不影响a 的值的,就像a +1不会把a值加1一样 。
a << 2只是一个表达式,返回的是表达式计算得到的值,其中并没有赋值(‘=’)操作啊。
c语言左移问题
9楼:听不清啊
但左移复概念是左边去掉
制n个二进制位,右边补n个零,但这是指原来的二进制数是“机器数”。就是如果使用unsigned char 来存储这个数的话,就是这样的。
例如:0001 0010(十进制为18)左移4位,
得到的应该是0010 0000(十进制32),但是18*16≡32 (模256)
当左移左边不去零,右边单纯补零的时候得到0001 0010 0000,这时候得到的恰好是
288=18*16,但这只是单纯往左移了(“丢失”了移出的4位)
如果仍是存储在unsigned char 中的话,就仍是0010 0000(十进制32)
用左移的时候194<<4,是1100 0010 0000,若仍是存储在unsigned char 中的话,就仍是0010 0000,这就是溢出了。
10楼:匿名用户
这里存在一个溢出的问题,但如果不考虑溢出的问题,书上的结论说法没有问题。这就是理论与实现的差距,具体问题需要具体分析。
11楼:匿名用户
前提当然是不考虑溢出问题,一个字节根本不能表示超过255的数据,自然会溢出
c语言中左移运算符的问题
12楼:
void main()
void main()
13楼:朴丹樊鸟
a没有变啊,b=a
<<3的意思是把a左移后的结果赋值给b就像b
=a+3;
b的值是a+3但是a本身没有加3的!
14楼:匿名用户
#include"stdio.h"
void main()
#include"stdio.h"
void main()
15楼:
char ch='e'; 十六进制0x65'e' 等于 二进制 0110 0101
ch=ch<<4;
左移4位 得 二进制 0101 0000
(高位0110 溢出, 自动丢失)
赋还到ch里.
二进制 0101 0000 是 p, 十六进制 0x50#include
void main()
c语言中,与2乘左移,与2除右移,这个是啥意思,求详细解释!!!
16楼:会飞的小兔子
对一个数实施左移操作=对这个数×2;对一个数实施右移操作=对这个数÷2。
a=ox32(16进制)00110010
b=a<<2
这个时候b=11001000对
那么此时a=00110010
继续c=a<<2
请问c是在原来a的初值(ox32)上移动
这个时候c=11001000
一个十进制的数,在电脑中都可以按二进制表示。例如:数字8,二进制就是1000.
左移一位,1000<<1=00010000=16,因此就是=8×2;同理右移一位,1000>>1=0100=4,就是8÷2。
扩展资料c语言中移位代替乘除
unsignedinthash(charconst*s)returnh;}
17楼:匿名用户
这句话的意思就是: 对一个数
实施左移操作=对这个数×2; 对一个数实施右移操作=对这个数÷2。
这个是计算机基本的二进制操作,因此不仅仅局限于c语言, 事实上绝大多数计算机编程语言都支持这个操作。
理解很容易:
一个(十进制的)数,在电脑里面都可以按二进制表示。 比如数字8, 二进制就是1000. 左移一位,1000 << 1 = 0001 0000 = 16, 因此就是=8×2;同理右移一位, 1000 >> 1 = 0100 = 4, 就是8÷2.
一个十进制a(这里先以正整数为例说明), 总可以表示成: a = a[n-1]*2^(n-1)+a[n-2]*2(n-2) + .... a[1]*2^1 + a[0]+2^0; 这里a[n-1]....
a[0]的取值范围就是0或1,就是一个二进制数各个位上权系数。 假设a[i] << k; a[i] -> a[i+k]; 它对整个数的贡献值,从2^i -> 2^(i+k) = 2^i × 2^k, 二进制的每一位都这样操作,因此这个数就被放大了2^k倍。当k=1的时候,就是×2;同理右移就是÷2^k.
c语言左移
18楼:匿名用户
左移就是把二进制数向左移动,右边补0,0的二进制全是0,左移之后右边再补0,移5和移6没区别
《后面的数字表示移多少位
19楼:匿名用户
0<<5左移
5位,即000000
0<<6左移6位,即0000000
左移后是用二进制表示的,
具体的这个程序中有什么用,回应该看程序本身,就像#define pi_frmerr (0 << 5)用000000代替pi_frmerr可能与答某个数进行与操作或其他的。
c语言的问题跪求大神解释,C语言的一个问题 跪求大神解释
1楼 八进制转义字符 它是由反斜杠 和随后的1 3个八进制数字构成的字符序列。例如, 60 101 141 分别表示字符 0 a 和 a 。因为字符 0 a 和 a 的ascii码的八进制值分别为60 101和141。 字符集中的所有字符都可以用八进制转义字符表示。 如果你愿意,可以在八进制数字前面...
求C语言大神,帮忙解释一下这道题的选项,刚入门C语言
1楼 匿名用户 a选项2的二进制是010,5的二进制是101,所以2与5的结果是0,即条件为假,所以不能形成死循环 bwhile中是逗号表达式,取最后一个表达式3的值为真,所以是死循环 cd中 0 是字符的ascii值为0的转义字符,所以为假,不构成死循环条件 2楼 天云一号 a2 5 0 所以不会...
男是两个正财偏财还是四正财两偏财,婚姻如何是不是很容
1楼 合鱼命理张老师 这个八字年柱正财,日主少年时代家镜一般有,才被劫之像,时柱透财合日主,日主夫妻感情比较好,虽有偏财暗藏,有心无胆 2楼 匿名用户 是的,日干担财无力,财运也受一些影响 男命八字中有一个正财 一个偏财婚姻怎么样 3楼 金神临身 不错很好,家里红旗不倒,外彩旗飘飘。 4楼 匿名用户...