Questions tagged «hexadecimal»

5
如果数字太大,会溢出到下一个存储位置吗?
我一直在审查C编程,但有几件事困扰着我。 让我们以以下代码为例: int myArray[5] = {1, 2, 2147483648, 4, 5}; int* ptr = myArray; int i; for(i=0; i<5; i++, ptr++) printf("\n Element %d holds %d at address %p", i, myArray[i], ptr); 我知道一个int可以容纳正数2,147,483,647的最大值。因此,通过遍历它,是否“溢出”到下一个内存地址,从而导致元素2在该地址处显示为“ -2147483648”?但这并没有真正的意义,因为在输出中它仍然说下一个地址保持值为4,然后是5。如果该数字已溢出到下一个地址,则不会改变存储在该地址的值? 我隐约记得在MIPS Assembly中进行编程时,看着地址在程序执行过程中逐步改变了值,分配给这些地址的值会改变。 除非我没有记错,否则这是另一个问题:如果分配给特定地址的数字大于类型(如myArray [2]中的类型),那么它是否不影响存储在后续地址中的值? 示例:我们在地址0x10010000处有int myNum = 40亿。当然,myNum不能存储40亿,因此它在该地址显示为负数。尽管不能存储这么大的数字,但它对存储在后续地址0x10010004上的值没有影响。正确? 内存地址仅具有足够的空间来容纳某些大小的数字/字符,如果大小超出限制,则其表示方式将有所不同(例如尝试将40亿存储到int中,但它将显示为负数),并且因此,它不会影响下一个地址中存储的数字/字符。 对不起,如果我过分。从那以后,我整天都在闹大闹鬼。

22
为什么要学习十六进制?[关闭]
那天我上了很多入门编程课,主要目的是让我对所发现的每种不同类型的编程有所了解。毫不奇怪,几乎每个类都以相同的格式运行:硬件简介,软件简介,然后进入实际编程。尽管了解硬件和软件的工作原理非常重要,但我始终对每门课程都涉及的一个主题感到困惑。 在我发现的软件介绍部分中,他们总是很着重于以二进制,十六进制甚至八进制数进行识字。我知道了解这些东西是什么,以及计算机如何解释它们是很好的,但是我从来没有发现自己真的需要知道如何读写这些数字系统。确实,我唯一见过的东西不是base 10,而是CSS中的颜色,如果您使用www.colorpicker.com之类的颜色,这会更加容易 我是否只是对编程世界中这些非基数10的数字系统的精彩用法一无所知,还是将这些部分纳入所有编程教科书中的古老传统?有没有人有一个很好的例子说明普通程序员实际在哪里使用八进制数?
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.