Tag: 十进制

如何在C,500到0x0500中将十进制文字转换为hex

我有以下内容:int num = 500; char text [8]; 如何使文本最终成为hex0x500或1280? 编辑:我看到它很简单,使其成为文本,就像在一些答案中。 但是我需要将这个文本解释为C语言的hex。所以实际上它应该是一个无符号的hexint。

IEEE 754到C语言的十进制

我正在寻找将浮点数转换为C中的十进制表示的最佳方法。我将尝试给出一个示例:用户在IEEE754(1 1111111 10101 …)中引入一个数字,程序必须返回十进制表示(例如25.6) 我尝试过使用掩码和按位操作,但我没有任何逻辑结果。

为什么我能用hex表示大于MAXINT的int,而不是十进制?

据我所知,十进制和hex只是(假设)一个int的表示。 这意味着如果我定义一个整数, x我应该能够将x打印为: 小数: printf(“%d”, x); hex: printf(“%x”, x); 我不明白的是当x超过MAXINT时这是如何表现的。 以下面的代码为例: #include int main(int argc, char** argv) { // Define two numbers that are both less than MAXINT int a = 808548400; int b = 2016424312; int theSum = a + b; // 2824972712 -> larger than MAXINT printf(“%d\n”, theSum); // -1469994584 -> Overflowed printf(“%x\n”, […]

如何将0到25之间的整数转换为相应的ASCII字符?

假设我有一个与ASCII字符a对应的数字0 。 我如何将0到25范围内的数字转换为字母表中的字母? 我已经尝试将97添加到十进制值,但它只输出数字+ 97 。 typedef enum { a, b, c, d, e, f, g, h, i, j, k, l, m, n, o, p, q, r, s, t, u, v, w, x, y, z } set; void dispSet(set numbers[], int size_numbers) { int i; printf(“[ “); for (i = 0; i < size_numbers-1; i++) […]

如何在C中拆分两位数字

假设我有一个像21这样的数字,我想将它拆分,以便得到数字2和1。 为了得到1,我可以做1 mod 10.所以基本上,最后一个数字可以通过使用mod 10找到。 为了获得2,我可以做到(21 – (1 mod 10))/ 10。 以上技术适用于任何2位数字。 但是,让我添加一个进一步的约束,该mod只能用于2的幂。然后不能使用上述方法。 那可以做些什么呢?

C中的十进制到二进制

我正在创建一个添加和减去2个数字的程序。 然后我必须将这个答案输出到不同的基础。 我的答案是十进制格式,类型为long double,例如: long double answer; answer = numberOne + numberTwo; 我想将这个答案转换成二进制。 现在我在我的程序中使用的代码执行此操作,但使用char指针: char * decimalBinary (char * decimalNumber) { bool zeroFront = true; int i; int z; int j = 0; int n = atoi(decimalNumber); char * binaryNum = malloc(32+1); binaryNum[32] = ‘\0’; int current_index=1; int end_index = strlen(decimalNumber)-1; //Error check for valid […]

如何在c中保留小数

我正在编写简单的家庭作业代码。 当我用它定义时,我从用户获得一个数字,即3.4 scanf(“%d”,&a) 它只需3个就可以这样做。 我定义a as int a; 我该怎么办?

将小数转换为hex数

为什么我们使用+ 55将十进制转换为hex数。 在这段代码中,我们使用+48将整数转换为字符。 当temp = 10时,我们使用+55。 +55是什么意思? #include int main(){ long int decimalNumber,remainder,quotient; int i=1,j,temp; char hexadecimalNumber[100]; printf(“Enter any decimal number: “); scanf(“%ld”,&decimalNumber); quotient = decimalNumber; while(quotient!=0){ temp = quotient % 16; //To convert integer into character if( temp 0;j–) printf(“%c”,hexadecimalNumber[j]); return 0; }

将真正的大数字从二进制转换为十进制并打印出来

我知道如何将二进制转换为十进制。 我知道至少2种方法:桌子和电源;-) 我想将二进制转换为十进制并打印此十进制。 而且,我对这个“十进制”不感兴趣; 我想要打印它。 但是,正如我上面所写,我只知道将二进制转换为十进制的两种方法,并且它们都需要添加。 所以,我在二进制中计算1或0的某个值,并将其添加到记忆值。 这是一个很薄的地方。 我有一个非常大的数字(1和64个零)。 转换时我需要在某些“变量”中放置一些中间结果。 在C中,我有一个`int’类型,它只有4个字节,不超过10 ^ 11。 因此,在从二进制转换为十进制时,我没有足够的内存来存储中间结果。 正如我上面写的那样,我对这个十进制不感兴趣,我只想打印结果。 但是,我没有看到任何其他方法来解决它;-(是否有任何解决方案从二进制“只打印”? 或者,也许,我应该使用类似BCD(二进制编码的十进制)的东西进行中间表示? 我真的不想使用这个,因为它不是那么跨平台(英特尔的处理器有内置function,但对于其他我需要编写自己的实现)。 我很高兴听到你的想法。 谢谢你的耐心等待。 语言:C

如何将字节数组(包含hex值)转换为十进制

我正在为Atmel微控制器编写一些代码。 我通过Uart获取一些数据,并将这些hex值存储到一个数组中。 假设数组的元素是:1F,29和3C。 我想有一个像0x1F293C这样的hex数,并将其转换为十进制数。 所以,我想最后得到“2042172”。 该数组可以有n个元素,所以我需要一个通用的解决方案。 谢谢。