gpt4 book ai didi

C# - 读取字节,它们是什么以及发生了什么。我期望二进制值,而不是十进制数

转载 作者:行者123 更新时间:2023-11-30 16:30:52 33 4
gpt4 key购买 nike

我已经做了几年程序员,但我从未理解涉及字节的低级操作。然而,我对它很感兴趣,并且我想了解更多有关使用字节的信息。

在下面的代码中,我正在读取一个文本文件,其中只包含单词“hi there”。

        FileStream fileStream = new FileStream(@"C:\myfile.txt", FileMode.Open);

byte[] mybyte = new byte[fileStream.Length];

fileStream.Read(mybyte, 0, (int)fileStream.Length);

foreach(byte b in mybyte)
Console.Write(b);

Console.ReadLine();

在这种情况下,mybyte 变量包含的数值似乎代表对应的 ASCII 十进制数。但是,我认为字节代表位,而位又代表二进制值。当读取一个字节时,我希望看到一个像“0001010”这样的二进制值,而不是“104”,它是“h”的 ascii 字符。

在读取图像的情况下,当将图像读入字节数组时,我再次看到数组中的数字,从低层次的角度来看,我希望得到二进制值。我知道这些数字显然不映射到 Ascii,但我很困惑为什么在读取字符串时它们会映射到 ascii 数字,而在读取图像流时它会做其他事情(我实际上不确定数字代表什么在读取图像的情况下)。

我知道了解数字在字节数组中的含义并不重要,但我对此非常感兴趣。

在从文本文件和二进制文件(即图像)读取时,有人可以阐明 .net 框架中的字节吗?谢谢你

此图像是包含从 myfile.txt 读取的文本“hi there”的字节数组 Byte array of the myfile.txt file.  Values map to "hi there"这张图片是一个包含图片流的字节数组 enter image description here

最佳答案

01101000 是值 104 的 8 位表示形式。由于 c# 字节存储 8 位 (0-255),因此向您显示它更易读。打开windows计算器并将 View 更改为“Programmer”,然后将其设置为“Bin”。可能会把事情搞清楚一点。

它没有显示一个十进制数,它显示的是一个 c# 字节,一个从 0 到 255 的数字

关于C# - 读取字节,它们是什么以及发生了什么。我期望二进制值,而不是十进制数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5295230/

33 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com