在线时间:8:00-16:00
迪恩网络APP
随时随地掌握行业动态
扫描二维码
关注迪恩网络微信公众号
正数的原码反码补码都相同。 -------> 0000 0001 正数1 负数较正数:最高位用1表示,反码其他位取反原码,补码为反码加1-------> 1000 0001 (原码-1) 1111 1110(反码-1) 1111 1111(补码-1) 按位与& 同真为真(1) 按位或 | 一真为真(1) 按位异或 ^ 一真一假为真(1) ,否则为假(0) 注意:位运算操作时都按照补码进行计算,正数三码合一,直接计算结果就是值 负数运算时,必须先把原码转换为反码到补码,在计算其补码值,得到的值为负数则需反向转化为反码至原码,为正数则是实际结果 案例:-2&-5 -2|-5 -2^-5 -2原码:1000 0010 --->反码:1111 1101 ----->补码:1111 1110 -5原码:1000 0101 --->反码:1111 1010------>补码:1111 1011 -2&-5: 1111 1010 ---->反码:1111 1001 --->原码:1000 0110 ---->-6 -2|-5: 1111 1111 ---->反码:1111 1110 --->原码:1000 0001 ---->-1 -2^-5: 0000 0101 ---->5 正数三码相同 ************************************************************************************ 位运算中的左移与右移:-5 >>2 、-5 <<2 左移则右边位补0,右移则左边用符号位补,是负数依旧需要转化为补码 -5原码:1000 0101 --->反码:1111 1010------>补码:1111 1011 右移2位:高位补符号位1 ----->1111 1110(补码) ---->1111 1101(反码)---->1000 0010(原码) -2 左移2位:低位补0 ---->1110 1100(补码) ---->1110 1011(反码)---->1001 0100 (原码) -20 ******************************************************************************************************** golang里面的switch后面不用带break 默认就会带上 for循环的简单实现: for i:=0;i<=10; i++{
fmt.Printf("hello go\n")
}
}
go语言实现字符串的遍历:两种方式 var num ="hello go" for i:=0;i<len(num);i++{ fmt.Printf("%c\n",num[i]) } for index,val:=range num{ fmt.Printf("下标是%d值是%c\n",index,val)
|
请发表评论