16进转10进

来源:百度知道 编辑:UC知道 时间:2024/06/11 06:17:08
16进制转为10进
BCDEH 7E8FH EFH 8CH

设有 X=10110110B Y=11001010B
试求下列逻辑表达式的值
XY X+Y X跋乘Y(就是X头顶上一横) X+Y的跋
X+Y跋 X跋乘Y跋 X+Y跋

机内数,无所谓16进制还是10进制,因为机内是2进制。只有在输入输出时才体现16进制还是10进制。

用C 语言描述:
按16进制输入BCDEH 7E8FH EFH 8CH
int i1,i2,i3,i4;
scanf("%x %x %x %x",&i1,&i2,&i3,&i4)
在健盘上拍入BCDE 7E8F EF 8C
按10进制输出:
printf("%d %d %d %d\n",i1,i2,i3,i4);
打印出的就是10进制数。
------------------------------------
如果不用健盘拍入,而用赋值语句:
i1 = 0xBCDE; i2 = 0x7E8F;
i3 = 0xEF; i4 = 0x8C;
效果是一样的。
==============================================
unsigned char x,y;
x = 0xB6; y = 0xCA;
(4位2进数写成一位16进数。记住"8-4-2-1",很容易转写成16进数)

按位乘 -- & (AND 运算)
按位加 -- | (OR 运算)
逻辑非 -- ! (NOT 运算)
XY -- x & y
X+Y -- x | y
X跋乘Y -- (!x) & y
X+Y的跋 -- !(x | y)
.... 自己写吧,计算顺序不清楚时加小括号就是了。