• 设为首页
  • 点击收藏
  • 手机版
    手机扫一扫访问
    迪恩网络手机版
  • 关注官方公众号
    微信扫一扫关注
    公众号

go开发入门基础之组成原理位运算(原码反码补码)

原作者: [db:作者] 来自: [db:来源] 收藏 邀请

正数的原码反码补码都相同。 ------->  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)
    

 


鲜花

握手

雷人

路过

鸡蛋
该文章已有0人参与评论

请发表评论

全部评论

专题导读
上一篇:
Go语言中的slice发布时间:2022-07-10
下一篇:
go语言之进阶篇 select实现的超时机制发布时间:2022-07-10
热门推荐
热门话题
阅读排行榜

扫描微信二维码

查看手机版网站

随时了解更新最新资讯

139-2527-9053

在线客服(服务时间 9:00~18:00)

在线QQ客服
地址:深圳市南山区西丽大学城创智工业园
电邮:jeky_zhao#qq.com
移动电话:139-2527-9053

Powered by 互联科技 X3.4© 2001-2213 极客世界.|Sitemap