byte关键字表示一个整数 存储指示值的类型 在下表中。它是无符号的8位整数。
如果它只有8位,那么我们如何将它分配给等于255?
byte myByte = 255;
我认为8位与一个角色是一回事吗?
答案 0 :(得分:25)
一个字节中有256种不同的位配置
0000 0000
0000 0001
0000 0010
...
1111 1111
因此可以为字节分配0-255范围内的值
答案 1 :(得分:19)
通过适合8位结构的数字表示来描述(在基本意义上)字符。如果您查看ascii字符的ASCII Codes,您会发现它们与数字有关。
比特序列可以表示的整数计数由公式2 ^ n-1生成(如上面由@Marc Gravell部分描述的)。因此,8位结构可以保持256个值,包括0(还要注意TCPIP号是4个8位结构的独立序列)。如果这是有符号整数,则第一位将是符号的标志,其余7将指示该值,因此虽然它仍将保持256个值,但最大值和最小值将由7个尾随位确定(因此2 ^ 7 - 1 = 127)。
当您使用Unicode字符和“高ascii”字符时,编码需要超过8位结构。因此,在您的示例中,如果要为字节分配值76
,则可以查阅查找表以派生ascii字符v
。
答案 2 :(得分:11)
11111111(8位)是 255:128 + 64 + 32 + 16 + 8 + 4 + 2 + 1
也许你会把它与256混淆,这是2 ^ 8?
答案 3 :(得分:9)
8位(无符号)是0到255,或(2 ^ 8)-1。
听起来就像你在混淆数据的整数与文本表示一样。
答案 4 :(得分:5)
255 = 2 ^ 8 - 1 = FF [hex] = 11111111 [bin]
答案 5 :(得分:5)
我认为8位与之相同 只有一个角色?
我认为您将数字255
与字符串“255”混淆。
以这种方式思考:如果计算机使用字符在内部存储数字,那么它将如何存储这些字符?使用位,对吧?
因此,在这个假设情景中,计算机将使用位来表示字符,然后它们用于表示数字。除了从效率的角度来看是可怕的,这只是多余的。比特可以直接代表数字。
答案 6 :(得分:4)
无符号8位的值范围是0到255.所以这是完全有效的
8位与c#中的一个字符不同。在c#中,字符是16位。即使字符是8位,它也与主要问题无关
答案 7 :(得分:2)
我认为你将字符编码与存储在变量中的实际积分值混淆。
8位值可以有255个配置,如Arkain所回答
可选地,在ASCII中,每个配置代表不同的ASCII字符
所以,基本上它取决于你如何解释值,作为整数值或作为字符
答案 8 :(得分:0)
当然,回答有点晚,但是对于那些在谷歌搜索中得到这个的人来说,我们走了......
就像其他人所说的那样,一个字符肯定与整数不同。它是否是8位是无关紧要的,但我可以通过简单说明每个如何工作来帮助我们:
对于8位整数,值范围在0到255之间(如果有符号则为-127..127,在这种情况下,第一位决定极性)
对于8位字符,它很可能是ASCII字符,其中通常由用十六进制值指定的索引引用,例如, FF或0A。因为当天返回的计算机只有8位,结果是16x16表,即ASCII字符集中有256个可能的字符。
无论哪种方式,如果字节长度为8位,那么ASCII地址或8位整数都将适合变量的数据。为简单起见,我建议使用不同的更专用的数据类型。 (例如,用于ASCII或原始数据的char,用于任何位长度的整数的int,通常为32位)