编程里的数字游戏

做网站程序 一天都是那些鬼东东让人越来越白痴

C++都快忘得快干净了

其实这些都是些最基础的的东西, 写一段时间程序了突然发现这些最基础的东西才是最有意思的。------\\\\(˙<>˙)/------

别说有些人就是爱好整这种虚拟的东东 折腾过去折腾过来 ,玩得不亦乐乎  怎么感觉有点像充气娃娃 - -!   无语。。。。。

位移操作符,只要你对二进制熟悉 那么你就可以熟练的操作他

1
int num = 1;<br>            num <<= 10;<br>            Console.WriteLine(num);

左移10位(二进制的位),相当于 2的10次方

输出结果为1024

 

1 int num1 = 0xff00;
2 int num2 = 0x00ff;
3 int num3 = num2 | num3;
4 Console.WriteLine("{0:x4}", num3);

或运算 可以用来合并位,比如字体样式里就经常用到  加粗|斜体
此处输出 ffff

1 int num1 = 0xffff;
2 int num2 = 0x0001;
3 int num3 = num2 & num3;
4 Console.WriteLine("{0:x4}", num3);

与运算 ,用来根据需要保留或去掉指定的位。这里把最低位以上的全部都去掉了。
此处输出 0001

(同理在已知某些位为1的情况下 我们也可以采用此方法 保留某些位而把某些位置为0)

二进制跟十进制之间转来转去的方法:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
二进制跟十进制之间转来转去的方法:
 
//字节数组转长整型(二进制转十进制)
static long byteArToLong(byte[] bytes)
{
    int [] nums= {1,256,512,1024,2048,4096,8192,16384,32768,65536,131072,262144};
    if(bytes.Length>nums.Length)
        throw new Exception("溢出");
    long num=0;
    for (int i = 0; i < bytes.Length; i++)           
        num += (bytes[i] * nums[i]);
    return num;
}
 
//长整型转字节数组(十进制转二进制)
static byte[] numToByteAr(long num)
{           
    IList<byte> data =new List<byte>();
 
    long dividend = num;
 
    int indx = 0;
    do
    {
        long yu = dividend % 256;
        dividend /= 256;
        data.Add((byte)yu);
    } while (dividend > 0);
    indx = 0;
    byte[] bytes = new byte[data.Count];
 
    foreach (byte b in data)
        bytes[indx++] = b;
 
    return bytes;
}

posted @   assassinx  阅读(532)  评论(3编辑  收藏  举报
编辑推荐:
· 浏览器原生「磁吸」效果!Anchor Positioning 锚点定位神器解析
· 没有源码,如何修改代码逻辑?
· 一个奇形怪状的面试题:Bean中的CHM要不要加volatile?
· [.NET]调用本地 Deepseek 模型
· 一个费力不讨好的项目,让我损失了近一半的绩效!
阅读排行:
· 百万级群聊的设计实践
· 永远不要相信用户的输入:从 SQL 注入攻防看输入验证的重要性
· 全网最简单!3分钟用满血DeepSeek R1开发一款AI智能客服,零代码轻松接入微信、公众号、小程
· .NET 10 首个预览版发布,跨平台开发与性能全面提升
· 《HelloGitHub》第 107 期
点击右上角即可分享
微信分享提示