标题: 关于二进制数,十六进制数 [打印本页]

作者: 炸掉的电容    时间: 2023-12-5 18:53
标题: 关于二进制数,十六进制数
问一下大家,在C语言里面,一个二进制数乘上256代表着什么,二进制数相乘的值,跟他们原来十进制想乘的值是一样的吗?相加呢?


作者: Hephaestus    时间: 2023-12-5 20:34
在c语言里面,所有的数据都是以二进制的形式保存的。就算是你看到的十进制,进了机器一律是二进制,所以此问题无解。
作者: npn    时间: 2023-12-5 21:14
无论任何进制的数字,CPU都是二进制处理的。
作者: 单片机学习习    时间: 2023-12-5 21:41
在C语言中要转换成同样的进制才能加减乘除
作者: Hephaestus    时间: 2023-12-5 22:06
单片机学习习 发表于 2023-12-5 21:41
在C语言中要转换成同样的进制才能加减乘除

不需要,你猜0xf+017等于几?试一下不就知道了吗?
作者: coody_sz    时间: 2023-12-5 23:02
一个二进制数乘上256,等于左移8位(一个字节)。
作者: jlslwh    时间: 2023-12-6 08:44
这个问题其实不是问题,在程序里加几条运算语句试一下不就清楚了吗。我觉得这类问题应该去试,而不应该去问。
作者: 462429590    时间: 2023-12-6 10:28
二进制数乘上256相当于乘上2的8次方 也就是后面补8个0. 二进制数相乘的值,跟他们原来十进制想乘的值是一样--当然是一样的 只不过表示方法不一样
作者: chxelc    时间: 2023-12-6 11:05
0b1011 x 256 = 0b1011 << 8 = 0b1011 0000 0000
二进制数乘以256,相当于左移8位。
作者: wangxiangtan    时间: 2023-12-6 16:20
乘256是为了获得对应的十进制数啊,你学一下C语言或者C#操作一下字节数组练一下吧
作者: Y_G_G    时间: 2023-12-6 16:29
这是C语言的基础知识,你要自己学会
C并不是什么二进制加起来等于多少的问题
而是先看你这个所谓的"数"是什么东西?
如果是数,那不就是1+1=2,8+8=16,4*256=1024小学的知识而已
但如果你涉及了变量,那就不是那么一回事了
作者: 和安51学习    时间: 2023-12-7 02:05
二进制乘上256也就是2^8,就是在该二进制数后补上8个0。二进制、十进制都是是数字表示方式,他们加减乘除后的值都是一样的,只是表示方法不一样
作者: 00云梦泽00    时间: 2023-12-7 08:12
二进制比喻成普通话  其它进制类似于方言 方言听不懂啊 就翻译成普通话就能听懂  计算机原理已经说的很明白了微处理器没出过北京村 只会普通话
作者: 52576525    时间: 2023-12-20 13:46
一个二进制数乘以256实际上是将该二进制数左移8位。  在二进制数中,左移操作相当于将该数乘以2的相应次方。因此,将一个二进制数左移8位相当于将其乘以2的8次方,即256。
作者: 傻12138逼    时间: 2023-12-20 20:41
在C语言中,一个二进制数乘上256的结果等价于将该二进制数左移8位。这是因为在二进制系统中,每左移一位,相当于乘以2的一次方。因此,左移8位相当于乘以2的8次方,即256。

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

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

如果将两个二进制数转换为十进制,然后进行乘法和加法运算,结果与在二进制域中直接进行乘法和加法的结果是一样的。但在C语言中,直接使用二进制运算更为方便和高效。
作者: LengmoAngel    时间: 2023-12-22 09:03
二进制数乘上的也是256的二进制数 cpu都以2禁止进行计算 256的二进制是100000000 你原数进ALU后面也是变成二进制 随后乘法器
作者: zyftank    时间: 2023-12-22 09:19
相乘,相加,取余都是不成问题的,只要没有超出保存结果的变量的范围就不会有问题。
作者: mtt661    时间: 2023-12-22 14:10
用c语言写的时候,没见过谁的写法用二进制直接参与运算的,写成10进制,或者16进制不是更容易读?不管怎么写,编译器最后还是给整成一堆二进制。
作者: 准备好爆炸了    时间: 2023-12-22 15:34
二进制数*256相当于*2的八次方,左移八位呗,当然跟十进制不一样
作者: guo_res    时间: 2023-12-22 16:23
C语言是高级语言,加减乘除的操作编译后为机器语言,机器语言根据不同的指令集,做字节或者半字,或者四字来进行加减乘除的。最容易理解的方式就是编译后都转二进制,因为底层硬件都是展开为数字寄存器处理,1bit 1bit这样拼接操作。
作者: 996445591    时间: 2023-12-22 21:34
二进制*256 相当于左移8位    二进制/256相当于右移8位
作者: fishafish    时间: 2023-12-23 09:58
其实人脑的神经突触网络运行的也是二进制,1就是55mv,0 就是0mv
作者: pluto1000    时间: 2023-12-31 21:37
一个二进制数乘上256代表着左移8位,有可能溢出。




欢迎光临 (http://www.51hei.com/bbs/) Powered by Discuz! X3.1