C语言左移运算法是不是往地址小的位移动??
6个回答
展开全部
C语言中按位左移的运算符为<<,其规则如下:
对于操作a<<n,
1 按照二进制值每位向高位(书写上是向左)移动n位;
2 最高位(最左边的)n位舍去;
3 最低位(最右边)填加n个0.
C语言是一门通用计算机编程语言,应用广泛。C语言的设计目标是提供一种能以简易的方式编译、处理低级存储器、产生少量的机器码以及不需要任何运行环境支持便能运行的编程语言。
尽管C语言提供了许多低级处理的功能,但仍然保持着良好跨平台的特性,以一个标准规格写出的C语言程序可在许多电脑平台上进行编译,甚至包含一些嵌入式处理器(单片机或称MCU)以及超级电脑等作业平台。
对于操作a<<n,
1 按照二进制值每位向高位(书写上是向左)移动n位;
2 最高位(最左边的)n位舍去;
3 最低位(最右边)填加n个0.
C语言是一门通用计算机编程语言,应用广泛。C语言的设计目标是提供一种能以简易的方式编译、处理低级存储器、产生少量的机器码以及不需要任何运行环境支持便能运行的编程语言。
尽管C语言提供了许多低级处理的功能,但仍然保持着良好跨平台的特性,以一个标准规格写出的C语言程序可在许多电脑平台上进行编译,甚至包含一些嵌入式处理器(单片机或称MCU)以及超级电脑等作业平台。
展开全部
C语言左右移算法是对二进制数位的左右移。不关地址的事。
左移一位相当于乘2, 右移一位相当于除 2 。
左移一位相当于乘2, 右移一位相当于除 2 。
追问
我的意思是:
---- 地址:1
---- 地址:2
---- 3
0
---- 4
1
---- 5 比如我左移1位这个"01"也就是1,是不是0移到了地址为3的那一位?
本回答被提问者采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
2013-05-31
展开全部
位运算是对某个地址中的变量进行运算。不存在地址大小问题,只有高低位的为题。
左移运算就是按位向左边移动二进制数,即向高位移动,丢弃高位,低位补0.
同理,右移运算就是向低位移动,丢弃低位,高位补0。
需要注意的是,如果是一个有符号数,左移运算会丢掉符号位
左移运算就是按位向左边移动二进制数,即向高位移动,丢弃高位,低位补0.
同理,右移运算就是向低位移动,丢弃低位,高位补0。
需要注意的是,如果是一个有符号数,左移运算会丢掉符号位
追问
我的意思是:
---- 地址:1
---- 地址:2
---- 3
0
---- 4
1
---- 5 比如我左移1位这个"01"也就是1,是不是0移到了地址为3的那一位?
追答
您的问题我懂了,不过我不知道移出的那一位是不是跑到别的物理地址上去了,很抱歉哦
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
不是,往地址高端移动,低位补零,常用来优化乘法。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
不是 左移是在一个变量内进行的 比如int a=2;对应2进制为00000010 如果左移一位 就变为0000 0100
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询