C语言,参见位运算的操作数必须是整形常量或变量?为什么?其他类型的量不能用二进制表示吗?

计算机识别的数不都是二进数吗?那为什么其他的量无法进行位运算。... 计算机识别的数不都是二进数吗?那为什么其他的量无法进行位运算。 展开
 我来答
水主沉浮6s
推荐于2016-02-20 · TA获得超过349个赞
知道小有建树答主
回答量:241
采纳率:0%
帮助的人:209万
展开全部
计算机里的数据都是二进制保存的。无论是float还是double型的,实际保存的时候,都是0和1的组合,都是二进制的。
C语言中整型常量才能进行位运算,这是这个语言所作出的限制,与计算机没有什么关系。它如果被设计成允许其他类型数据可以进行位运算,也是可以的。只是由于数据保存方式的特殊性,其他类型数据做位运算从可理解性和实现效率方面来说,都有缺点,所以不适合做位运算。

你可以查阅一下float型在内存中具体是怎么保存的(和科学计数法有些类似),就会明白为什么对它进行位运算不好。
fucshidam
2014-12-30 · TA获得超过536个赞
知道小有建树答主
回答量:393
采纳率:40%
帮助的人:348万
展开全部
整形存储的时候其实本质就是按照二进制存储的,所以可以直接操作;其他类型的,例如浮点型,用科学计数法存储,二进制存储的是有效数字和次方,这样的按位运算毫无意义。就好比你已经做好了一把椅子,各种规范都订好了,你然后把它烧了,让它起到了木头原本的作用。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式