找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
查看: 850|回复: 22
打印 上一主题 下一主题
收起左侧

关于二进制数,十六进制数

  [复制链接]
跳转到指定楼层
楼主
ID:925236 发表于 2023-12-5 18:53 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
问一下大家,在C语言里面,一个二进制数乘上256代表着什么,二进制数相乘的值,跟他们原来十进制想乘的值是一样的吗?相加呢?

分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖 顶 踩
回复

使用道具 举报

沙发
ID:883242 发表于 2023-12-5 20:34 | 只看该作者
在c语言里面,所有的数据都是以二进制的形式保存的。就算是你看到的十进制,进了机器一律是二进制,所以此问题无解。
回复

使用道具 举报

板凳
ID:57657 发表于 2023-12-5 21:14 | 只看该作者
无论任何进制的数字,CPU都是二进制处理的。
回复

使用道具 举报

地板
ID:264021 发表于 2023-12-5 21:41 | 只看该作者
在C语言中要转换成同样的进制才能加减乘除
回复

使用道具 举报

5#
ID:883242 发表于 2023-12-5 22:06 | 只看该作者
单片机学习习 发表于 2023-12-5 21:41
在C语言中要转换成同样的进制才能加减乘除

不需要,你猜0xf+017等于几?试一下不就知道了吗?
回复

使用道具 举报

6#
ID:1034262 发表于 2023-12-5 23:02 | 只看该作者
一个二进制数乘上256,等于左移8位(一个字节)。
回复

使用道具 举报

7#
ID:1089601 发表于 2023-12-6 08:44 | 只看该作者
这个问题其实不是问题,在程序里加几条运算语句试一下不就清楚了吗。我觉得这类问题应该去试,而不应该去问。
回复

使用道具 举报

8#
ID:1102853 发表于 2023-12-6 10:28 | 只看该作者
二进制数乘上256相当于乘上2的8次方 也就是后面补8个0. 二进制数相乘的值,跟他们原来十进制想乘的值是一样--当然是一样的 只不过表示方法不一样
回复

使用道具 举报

9#
ID:712097 发表于 2023-12-6 11:05 | 只看该作者
0b1011 x 256 = 0b1011 << 8 = 0b1011 0000 0000
二进制数乘以256,相当于左移8位。
回复

使用道具 举报

10#
ID:1057978 发表于 2023-12-6 16:20 | 只看该作者
乘256是为了获得对应的十进制数啊,你学一下C语言或者C#操作一下字节数组练一下吧
回复

使用道具 举报

11#
ID:401564 发表于 2023-12-6 16:29 | 只看该作者
这是C语言的基础知识,你要自己学会
C并不是什么二进制加起来等于多少的问题
而是先看你这个所谓的"数"是什么东西?
如果是数,那不就是1+1=2,8+8=16,4*256=1024小学的知识而已
但如果你涉及了变量,那就不是那么一回事了
回复

使用道具 举报

12#
ID:1102964 发表于 2023-12-7 02:05 来自手机 | 只看该作者
二进制乘上256也就是2^8,就是在该二进制数后补上8个0。二进制、十进制都是是数字表示方式,他们加减乘除后的值都是一样的,只是表示方法不一样
回复

使用道具 举报

13#
ID:739610 发表于 2023-12-7 08:12 | 只看该作者
二进制比喻成普通话  其它进制类似于方言 方言听不懂啊 就翻译成普通话就能听懂  计算机原理已经说的很明白了微处理器没出过北京村 只会普通话
回复

使用道具 举报

14#
ID:1105351 发表于 2023-12-20 13:46 | 只看该作者
一个二进制数乘以256实际上是将该二进制数左移8位。  在二进制数中,左移操作相当于将该数乘以2的相应次方。因此,将一个二进制数左移8位相当于将其乘以2的8次方,即256。
回复

使用道具 举报

15#
ID:1105250 发表于 2023-12-20 20:41 | 只看该作者
在C语言中,一个二进制数乘上256的结果等价于将该二进制数左移8位。这是因为在二进制系统中,每左移一位,相当于乘以2的一次方。因此,左移8位相当于乘以2的8次方,即256。

例如,如果有一个二进制数b,那么b * 256 就等价于将二进制数b左移8位。

关于二进制数相乘和相加,与十进制类似,二进制数相乘的结果是两个二进制数的乘积,而二进制数相加的结果是两个二进制数的和。

如果将两个二进制数转换为十进制,然后进行乘法和加法运算,结果与在二进制域中直接进行乘法和加法的结果是一样的。但在C语言中,直接使用二进制运算更为方便和高效。
回复

使用道具 举报

16#
ID:1062320 发表于 2023-12-22 09:03 | 只看该作者
二进制数乘上的也是256的二进制数 cpu都以2禁止进行计算 256的二进制是100000000 你原数进ALU后面也是变成二进制 随后乘法器
回复

使用道具 举报

17#
ID:74687 发表于 2023-12-22 09:19 | 只看该作者
相乘,相加,取余都是不成问题的,只要没有超出保存结果的变量的范围就不会有问题。
回复

使用道具 举报

18#
ID:1010435 发表于 2023-12-22 14:10 | 只看该作者
用c语言写的时候,没见过谁的写法用二进制直接参与运算的,写成10进制,或者16进制不是更容易读?不管怎么写,编译器最后还是给整成一堆二进制。
回复

使用道具 举报

19#
ID:1105782 发表于 2023-12-22 15:34 | 只看该作者
二进制数*256相当于*2的八次方,左移八位呗,当然跟十进制不一样
回复

使用道具 举报

20#
ID:1105796 发表于 2023-12-22 16:23 | 只看该作者
C语言是高级语言,加减乘除的操作编译后为机器语言,机器语言根据不同的指令集,做字节或者半字,或者四字来进行加减乘除的。最容易理解的方式就是编译后都转二进制,因为底层硬件都是展开为数字寄存器处理,1bit 1bit这样拼接操作。
回复

使用道具 举报

21#
ID:298663 发表于 2023-12-22 21:34 | 只看该作者
二进制*256 相当于左移8位    二进制/256相当于右移8位
回复

使用道具 举报

22#
ID:1059013 发表于 2023-12-23 09:58 | 只看该作者
其实人脑的神经突触网络运行的也是二进制,1就是55mv,0 就是0mv
回复

使用道具 举报

23#
ID:1107339 发表于 2023-12-31 21:37 | 只看该作者
一个二进制数乘上256代表着左移8位,有可能溢出。
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

手机版|小黑屋|51黑电子论坛 |51黑电子论坛6群 QQ 管理员QQ:125739409;技术交流QQ群281945664

Powered by 单片机教程网

快速回复 返回顶部 返回列表