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


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

    go语言实现字符串的遍历:两种方式

        var num ="hello go"
        for i:=0;i<len(num);i++{
            fmt.Printf("%c
    ",num[i])
        }
    
        for index,val:=range num{
            fmt.Printf("下标是%d值是%c
    ",index,val)
        
  • 相关阅读:
    最近的一些心理活动
    object_c函数多个返回值
    nslayoutConstraint
    判断一些常用的东西
    color 的一些处理
    最近的心理活动
    加载不同的nib文件
    Be a person
    按钮居左显示
    SQLite错误码
  • 原文地址:https://www.cnblogs.com/wen-kang/p/10389524.html
Copyright © 2020-2023  润新知