8的二进制形式 c语言,c语言二进制八进制十六进制的符号

首页 > 经验 > 作者:YD1662025-05-06 03:39:20

8的二进制形式 c语言,c语言二进制八进制十六进制的符号(1)

变量在内存当中的存储方式都是二进制数,而二进制只有0或1两种情况。那这样的话,就要求这里个数中有一个表示正号,一个表示符号。这就规定了负号用1表示,正号用0表示。

如果你的-8是一个char(字符型)的数据的话,那它就占一个存储单元,一个存储单元就是一个字节(byte),共八位。好,前面说变量数值在内存当中都是二进制,如果是正数,8位全部表示数据,没有符号位,转换成二进制就和简单了。

如果是负数,最高位就表示符号位,其余的7位表示数据位。所以单纯是用二进制表示的话,-8就应该是10001000。补充一点:负数在内存当中是以它的补码存储的。补码的求法是:

1、取绝对值2、取反3、加1所以-8在内存当中的二进制形式是:11111000,如果我们用一个无符号变量去读这块内存,结果会是:十六进制的F8。为什么是这个结果?

因为只有十进制才有正负之分,而十六进制和二进制是没有正负之分的,在内存当中的形式是这样,它只是一种状态,看我们用什么表示方法的变量去读这块内存了,如果你用的是有符号十进制的变量读它,它就是一个负数,转换成十六进制,可就没有符号在前面了。

栏目热文

文档排行

本站推荐

Copyright © 2018 - 2021 www.yd166.com., All Rights Reserved.