二进制乘法问题
16位无符号二进制变量I=16,J=127 I与二进制度数1111逻辑乘运算过程与结果是什么? 运算结果与I%16的结果相同吗? J与二进制度数1111逻辑乘运算过程与结果是什么? 运算结果与J%16的结果相同吗?
1、十进制数(Decimal Number) 特点:(1)有十个不同的数字符号:0~9 (2)数位逢十进一 (3)基数为十 2、二进制数(Binary Number) 特点:(1)有两个不同的数码:0和1 (2)数位逢二进一 (3)基数为二 3、十六进制数(Hex Number) 特点:(1)有十六个不同的数码:0~9加A~F (2)数位逢十六进一 (3)基数为十六 4、八进制数(Octal Number) 特点:(1)有八个不同的数码:0~7 (2)数位逢八进一 (3)基数为八 二进制数的运算 一、二进制加法à逻辑运算的“或”运算,运算符“∨”à0为假,1为真,全假为假,其余为真 (1)0+0=0 (2)0+1=1 (3)1+0=1 (4)1+1=10[逢二进一] 例:将1011和1010相加 被加数 1 0 1 1 加数 1 0 1 0 进位 + ) 1 1 结果[和] 1 0 1 0 1 二、二进制减法à逻辑算法à0为假,1为真,相同为假,不同为真 (1)0-0=0 (2)0-1=1[有借位,借1当2] (3)1-0=1 (4)1-1=0 例:将11000000和101010相减 被减数 1 1 0 0 0 0 0 0 减数 1 0 1 0 1 0 借位 1 1 1 1 1 结果[差] 1 0 0 1 0 1 1 0 三、二进制乘法à逻辑运算的“与”运算,运算符“∧”à0为假,1为真,全真为真,其余为假 (1)0×0=0 (2)0×1=0 (3)1×0=0 (4)1×1=1 两个二进制数相乘与十进制数类似,可用乘数的每一位去乘被乘数,乘得的中间结果的最低有效位与相应的乘数位对齐,最后把这些中间结果同时相加即可。
例:将1110和110相乘 被乘数 1 1 1 0 乘数 1 1 0 0 0 0 0 1 1 1 0 + ) 1 1 1 0 结果[积] 1 0 1 0 1 0 0 四、二进制除法 除法是乘法的逆运算,二进制除法与十进制十分类似。
方法是从被除数的最高位开始检查,定出需要超出除数的位数,找到这个位时商记为1,并把选定的部分被除数减除数,得余数。然后把被除数的下一位下移到余数上,形成新的部分被除数。若部分被除数大于除数,则商1,减去被除数得余数,被除数的下一位移到余数上,形成新的部分被除数;若部分被除数小于除数,则商0,下一位被除数下移,形成新的部分被除数。
这样继续下去,直到全部被除数的位都下移完为止,于是得到商和余数。
如1001110/110的过程如下: 1 1 0 1 商 除数 1 1 0 1 0 0 1 1 1 0 被除数 1 1 0 1 1 1 1 1 0 1 1 0 1 1 0 0 。
答:十六位二进制,正整数最大是1111111111111111。十六个1。 转换成10进制=1*2的0次方+1*2的1次方+1*2的2次方+ ....+1*2的15...详情>>
问:挺简单的一C函数,不过我是初学者,暂时还不会写,请好心人多多帮忙!
答:int mystrlen(char *str) { int n = 0; while (*str) { n++; str++;} return n; } voi...详情>>