在放代码之前,我首先要坦白,我看错题目了。这个题目应该是问一个字符的SHA256散列0和1的分别个数。
我看成了按ch4/sha256里的比较’x’和’X’的不同位数有多少
主要难度就是把SHA256的byte转成字符串or数据组。
为什么呢?其实书上有给我们答案。把byte转为二进制的256位才能比较不同位数,如果你直接用十进制数输出,首先你数组个数就才32个,而且这两个数组的元素相等等价于元256位二进制数按照4个分割当且仅当这四个位都相等,你才会返回一个元素相等。
我为什么知道呢,因为我偷懒这么干,结果居然只有31个不一致,一改变量发现数组一共才32个元素,完犊子。
上代码:
把byte转为字符串数组(实际每个元素写的是该数组第i个二进制位上的数)
然后循环遍历。我知道题目让我用popcount,但是我开卷都只写成这样,popcount我真觉得比循环遍历难,可以但没必要哈。
运算结果:(看不懂125是啥count是啥的左转去学C语言谢谢)
按题目问题就更简单了啊,数一个字符数的SHA256里有多少0和1,我新建一个gofile文件可以控制输入,(其实上面那个也可以,但是我懒and不一定写得出来)
给大家看看结果啦:
另外,go你再说你不在意缩进格式我给你梆梆来两拳!
诚邀大家品鉴憨批编译器找不同:
简简单单两天工作量…61就是很拉啊