Tag: 无符号整数

在C中为unsigned int分配一个大数字

我试图给unsigned int分配一个数字,但它会导致错误。 我想只要数字介于0和2 ^ 32之间,它应该可以工作。 这是我的代码。 unsigned int number = 4026658824; 但是,我收到此错误。 错误:根据1999 ISO C标准不断推广

C:unsigned int上的模数运算符给出了意外的输出

#include main() { unsigned a = -20; unsigned b = 10; printf(“%d\n”, (a % b)); printf(“%d\n”, (-20 % 10)); } Output: 6 0 第二个printf打印预期值0,而第一个printf打印6.为什么这个意外输出带有无符号整数?

C – unsigned int to unsigned char数组转换

我有一个无符号的int数(2字节),我想将它转换为unsigned char类型。 从我的搜索中,我发现大多数人建议您执行以下操作: unsigned int x; … unsigned char ch = (unsigned char)x; 是正确的方法吗? 我问,因为unsigned char是1个字节,我们从2字节数据转换为1个字节。 为了防止任何数据丢失,我想创建一个unsigned char []数组并将单个字节保存到数组中。 我被困在以下地方: unsigned char ch[2]; unsigned int num = 272; for(i=0; i<2; i++){ // how should the individual bytes from num be saved in ch[0] and ch[1] ?? } 另外, 我们如何将unsigned char [2]转换回unsigned int 。 非常感谢。

C:将签名转换为无符号

其实我(可能)是一个“简单”的问题。 所以我不知道如何将有符号整数转换为无符号整数。 我的代码: signed int entry = 0; printf(“Decimal Number : “); scanf(“%d”, &entry); unsigned int uEntry= (unsigned int) entry; printf(“Unsigned : %d\n”, uEntry); 如果我将无符号值发送到控制台(参见我的上一个代码行),我总是得到一个有符号整数。 你能帮助我吗? 非常感谢! 亲切的问候,亲

为什么我们在C中有无符号和有符号的int类型?

我是C的初学者。 我最近了解了2’s Complement和其他表示负数的方法以及为什么2’s complement是最合适的。 我想问的是,例如, int a = -3; unsigned int b = -3; //This is the interesting Part. 现在,用于转换int类型 标准说: 6.3.1.3有符号和无符号整数 当具有整数类型的值转换为除_Bool之外的另一个整数类型时,如果该值可以由新类型表示,则它将保持不变。 否则,如果新类型是无符号的,则通过重复地添加或减去一个可以在新类型中表示的最大值来转换该值,直到该值在新类型的范围内。 第一段不能用作-3不能用unsigned int表示。 因此第2段开始发挥作用,我们需要知道unsigned int的最大值。 它可以在limits.h中找到UINT_MAX 。 这种情况下的最大值是4294967295因此计算结果如下: -3 + UINT_MAX + 1 = -3 + 4294967295 + 1 = 4294967293 现在4294967293二进制是11111111 11111111 11111111 11111101和-3 in 2的补码forms是11111111 11111111 11111111 11111101所以它们基本上是相同的位表示,无论我想要分配给无符号整数的负整数,它总是相同的。所以不是无符号类型冗余。 现在我知道printf(“%d” , […]

C中的无符号整数

当我运行下面的程序时,它输出像109876543210-1-2-3-4-5-6-78-9-10-11-12-and s0 on。 为什么这样? 无符号整数的概念是什么? main () { unsigned int i; for (i = 10; i >= 0; i–) printf (“%d”, i); }

什么是整数文字类型? 以及他们如何存储?

我刚刚开始学习C,现在有一个问题让我烦恼了一段时间。 如果我写 int i = -1; unsigned int j = 2; unsigned int k = -2; 整数文字-1和2和-2的类型是什么,它如何转换为存储在signed int和unsigned int ? 有符号整数是什么意思,变量或整数字的属性呢? 像-2是有符号整数, 2是无符号整数?

如何计算32位无符号整数中的前导零

请问有人能告诉我什么是一种有效的算法来计算C编程中32位无符号整数中前导零的数量?