十六进制计算方法

十六进制计算方法,第1张

0-9对应0-9;

A-F对应10-15;

十六进制数的加减法的进/借位规则为:借一当十六,逢十六进一。

十六进制数同二进制数及十进制数一样,也可以写成展开式的形式。

十进制整数转十六进制数:“除以16取余,逆序排列”(除16取余法)

例:(1765)10=(6E5)2

1765/16=1105

110/16=614

616=06

因为14对应E

十六进制数转换成二进制数:把每一个十六进制数转换成4位的二进制数,就得到一个二进制数。

十六进制数字与二进制数字的对应关系如下:

0000 -> 0 0100 -> 4 1000 -> 8 1100 -> C

0001 -> 1 0101 -> 5 1001 -> 9 1101 -> D

0010 -> 2 0110 -> 6 1010 -> A 1110 -> E

0011 -> 3 0111 -> 7 1011 -> B 1111 -> F

例:将十六进制数5DF9 转换成二进制:

5 D F . 9 0101 1101 1111 .1001

即:(5DF9)16 =(101110111111001)2

例:将二进制数1100001111 转换成十六进制:

0110 0001 . 1110 6 1 . E

即:(1100001111)2 =(61E)16

扩展资料:

进制转换的理论:

1、 二进制数、十六进制数转换为十进制数:

用按权展开法把一个任意R 进制数a n a n-1 a1a 0 a -1 a -2a -m转换成十进制数,其十进制数值为每一位数字与其位权之积的和。

a n ×Rn+ a n-1×R n-1 +…+ a 1×R 1 + a 0×R 0 + a -1 ×R -1+ a -2×R -2+ …+ a -m ×R -m

2、 十进制转化成R 进制十进制数轮换成R 进制数要分两个部分:

整数部分要除R 取余数,直到商为0,得到的余数即为二进数各位的数码,余数从右到左排列(反序排 列) 。小数部分要乘R 取整数,得到的整数即为二进数各位的数码,整数从左到右排列(顺序排列) 。

3、十六进制转化成二进制:每一位十六进制数对应二进制的四位,逐位展开。

4、 二进制转化成十六进制:将二进制数从小数点开始分别向左(对二进制整数)或向右(对二进制小数)每四位组成一组,不足四位补零。

参考资料:

十六进制转换_百度百科

进制转换-百度百科

3200H×16=32000H
(3200H左移4位)
计算机中的所有 *** 作都是以二进制为基础的,是计算机的实质,其它进制都是外在表现。
乘法运算实质是被乘数做(乘数-1)次自身加法。如7×3=7+7+7。

读入的时候用%x读入,然后在程序里面直接用+,-,,/运算就行了,输出的时候再用%x。
int
a,b;
scanf("%x%x",&a,&b);
printf("%x\n%x\n",a+b,a-b);
输入:9
7
输出:
10
2

这个,记不记得小学时背过10进制的九九乘法表,
你现在不会做这个16进制乘法,是因为你没背过十五十五乘法表。不过不要紧,在脑袋里多一次进制转化就可以。
16
9
个位乘等于54。54/16=3余6,即进位是3,个位余6
十位相乘等于9加上进位3等于12,12是16进制的C
所以答案是C6H,这个是16进制无符号数真值的乘法,如果在计算机内部,那就麻烦了。有原码一位乘,二位乘及补码乘法的布斯算法

汗,看错了。你是18X6,原理一样,等于90

1二进制数、十六进制数转换为十进制数(按权求和)
二进制数、十六进制数转换为十进制数的规律是相同的。把二进制数(或十六进制数)按位权形式展开多项式和的形式,求其最后的和,就是其对应的十进制数——简称“按权求和”
例如:把(100101)2转换为十进制数。
解:(100101)2
=18+40+20+11+0(1/2)+1(1/4)
=8+0+0+1+0+025
=925
把(38A11)16转换为十进制数
解:(38A11)16
=3×16的2次方+8×16的1次方+10×的0次方+1×16的-1次方+1×16的-2次方
=768+128+10+00625+00039
=9060664
2十进制数转换为二进制数,十六进制数(除2/16取余法)
整数转换一个十进制整数转换为二进制整数通常采用除二取余法,即用2连续除十进制数,直到商为0,逆序排列余数即可得到――简称除二取余法.
例:将25转换为二进制数
解:25÷2=12 余数1
12÷2=6 余数0
6÷2=3 余数0
3÷2=1 余数1
1÷2=0 余数1
所以25=(11001)2
同理,把十进制数转换为十六进制数时,将基数2转换成16就可以了
例:将25转换为十六进制数
解:25÷16=1 余数9
1÷16=0 余数1
所以25=(19)16
3二进制数与十六进制数之间的转换
由于4位二进制数恰好有16个组合状态,即1位十六进制数与4位二进制数是一一对应的所以,十六进制数与二进制数的转换是十分简单的
(1)十六进制数转换成二进制数,只要将每一位十六进制数用对应的4位二进制数替代即可――简称位分四位
例:将(4AF8B)16转换为二进制数
解: 4 A F 8 B
0100 1010 1111 1000 1011
所以(4AF8B)16=(1001010111110001011)2
(2)二进制数转换为十六进制数,分别向左,向右每四位一组,依次写出每组4位二进制数所对应的十六进制数――简称四位合一位
例:将二进制数(111010110)2转换为十六进制数
解: 0001 1101 0110
1 D 6
所以(111010110)2=(1D6)16
转换时注意最后一组不足4位时必须加0补齐4位

Lz您好:二进制的算法是满二进一 十六进制的算法是满十六进一 与十进制的满十进一是一样的
111+111=1110 (1+1满二就要进1写0 每位都是一样 但是除了最后一位是0外 其余各位还要加上进上来的一 所以 答案为1110)
B+A 先看B和A分别对应的十进制数是11和10 因而先直接相加得21 满十六进一的话 十六进制里16为10 所以 21为15所以 B+A=15
1B+2A=10+11+20+10=51=33 (此处1代表10 2代表20) 十进制51转化为二进制为110011 又由二进制转化为十六进制为33
无论是几进制的加减乘除法都可以先将其转化为二进制或更进一步转化为十进制进行计算 再转化回来 听起来麻烦了点哈 不过我也就知道这么个方法了
由八进制或十六进制转化为二进制 就是将每一位分别转化为二进制 再联起来 反之则 二转八的时候是将二进制数分为三个三个一组 二转十六是将二进制数分为四个四个一组(不够的要补位 补位时要注意保持数值不变 即补在没有意义的地方) 先将分组后的数转化为十进制的数 然后直接联起来既可 十进制转换十六进制3599/16=224 余 15
224/16=14 余0
14/16=0 余14
在16进制中14=E 15=F
将余数逆序排列就是所要的16进制数结果是E0F


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/yw/12750808.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-27
下一篇 2023-05-27

发表评论

登录后才能评论

评论列表(0条)

保存