八进制数有负数吗?
有啊,用二进制数可以表示一个十进制的负数,就是最前面一位是1就表示这个二进制数是负数。而八进制数也是特殊的二进制数,所以八进制数也有负数,即可以把一个十进制的负数转换成八进制的负数。
八进制数到底有没有负数??请接着往下看
首先:八进制数的确是没有负数的
其次:我解释一下你说的现象
你的赋值其实赋的是十进制数 a = 21(即进制025) ;
b = 4294967275(16进制0FFFFFFEB,八进制37777777753) ;
(这里谢谢楼下提醒,原先写错了)
要赋成八进制数要写成 a = ‘\025’ ; (我写成 a = \025 ; 编译错误)
八进制数是不能写负数的 也就是不能写成 ‘\-XXX’ 的
我在Visual C++ 6.0 上写 ‘\-001’的时候出现编译错误
查看汇编代码 int b = ‘\-001’ ;汇编代码为
mov dword ptr [ebp-8],2D303031h
也就是说 ‘\-001’ 在计算机内是表示为 2D303031h 的,为什么会这样我就不知道了
但是可以说明一点:八进制是不能表示为负数的
至于计算机内是怎么运算的,你给的代码就是按十进制来算的,计算机内部的运算过程我想就不用给了吧.
为什么八进制没有负数,我的理解是:负数只是为了表示10进制数而出现的,而计算机内部就没有负数的概念,它就是几个二进制的位而已,所以就没必要弄出二进制的八进制,再次,它只是相当于对二进制的一个缩写,而二进制可以根据规则和十进制互换,所以没有负的。
希望你可以理解。
八进制数有负数吗?
有啊,用二进制数可以表示一个十进制的负数,就是最前面一位是1就表示这个二进制数是负数.而八进制数也是特殊的二进制数,所以八进制数也有负数,即可以把一个十进制的负数转换成八进制的负数.
进一步的,八进制和十六进制有没有负数
负数只是一个符号,与进制无关。无论多少进制,只要在数的最前面添加一个”-“号,就是负数了。所以八进制和十六进制都可以是负数。