Tag: 整数

在C中,是否保证1/2 == 0?

在C中保证1/2 == 0 ? 我需要它来实现二进制搜索: /* * len is the array length * ary is an array of ptrs * f is a compare function * found is a ptr to the found element in the array * both i and offset are unsigned integers, used as indexes */ for(i = len/2; !found && i […]

如何在C中扫描未知数量的整数到数组?

我知道我可以使用scanf一定数量的数字,例如3个数字 scanf(“%d %d %d”,array[0],array[1],array[2]); 但如果我不知道在输入(NOT EOF)之前输入数组有多少数字(整数,不是浮点数),我怎么能扫描呢? 例如 input : 12 43 23(enter) –> array[0]=12, array[1]=43, array[2]=23 input : 10 20 30 40 50(enter) –> array[0]=10, array[1]=20, array[2]=30, array[3]=40, array[4]= 50 etc.. 它是关于如何将数字输入整数数组。 如果可能的话,我想将它保存到2维数组中 input : 12 43 23(enter) –> array[0][0]=12, array[0][1]=43, array[0][2]=23 input : 10 20 30 40 50(enter) –> array[1][0]=10, array[1][1]=20, array[1][2]=30, array[1][3]=40, array[1][4]= […]

C中的精确宽度整数类型(stdint.h)

我希望char,short和int类型的宽度为1,2和4字节。 我在我的源代码中包含了一个stdint.h标题。 这是否保证int8_t,int16_t和int32_t整数类型的宽度是指定的? 实现这一目标的最佳方法是什么?

C – 相对于平均值在一个区间内生成随机数

我需要在一个区间内生成一组随机数,这也恰好具有平均值。 例如min = 1000,max = 10000,平均值为7000.我知道如何在一个范围内创建数字,但我正在努力平均值。 有没有我可以使用的function?

C中任何整数的旋转位

将整数2传递给此函数,然后返回一个4的整数 x = 2; x = rotateInt(‘L’, x, 1); (左移位数为1) 示例:00000010 – >向左旋转1 – > 00000100 但如果我通过这个: x = rotateInt(‘R’, x, 3); 它将返回64,010000 这是代码,有人可以纠正错误…谢谢 int rotateInt(char direction, unsigned int x, int y) { unsigned int mask = 0; int num = 0, result = 0; int i; for (i = 0; i > 1; } […]

long long是8个字节,但是我得到整数溢出?

假设 long long b = 5*1024*1024*1024; // 5 gigs, small enough for 64 bits printf (“%lu\n”,sizeof(long long)); // prints 8 (bytes) = 64 bits 但编译器抱怨: warning: integer overflow in expression [-Woverflow] 为什么会溢出,我错过了什么?

如何在Arduino或C中将十进制数的整数和小数部分作为两个整数?

如何将30.8365146转换为两个整数,例如30和8365146,如Arduino或C? 当我尝试通过XBee系列1发送不允许传输分数的GPS数据时,这个问题面临着我,所以我决定将数据分成两部分。 我怎样才能做到这一点? 我尝试过这样的事情: double num=30.233; int a,b; a = floor(num); b = (num-a) * pow(10,3); 输出为30和232 ! 输出不是30和233.我为什么以及如何解决它?

从字符串c ++中读取所有整数

我需要一些帮助,从std :: string中获取所有整数,并将每个整数转换为int变量。 字符串示例: hi 153 67 216 我希望程序忽略“blah”和“hi”并将每个整数存储到int变量中。 所以它就像是: a = 153 b = 67 c = 216 然后我可以自由地分别打印每个像: printf(“First int: %d”, a); printf(“Second int: %d”, b); printf(“Third int: %d”, c); 谢谢!

关于在C族语言中使用有符号整数

在我自己的代码中使用整数值时,我总是试着考虑签名,问自己整数应该是有符号还是无符号。 当我确定该值永远不需要为负数时,我会使用无符号整数。 而且我不得不说这种情况大多数时间都会发生。 在阅读其他人的代码时,我很少看到无符号整数,即使代表的值不能为负数。 所以我问自己: “这有充分的理由吗,或者人们只是使用签名整数,因为不关心» ? 我在这里和其他地方搜索了这个主题,我不得不说,当它适用时,我找不到使用无符号整数的充分理由。 我遇到了这些问题: «默认int类型:有符号或无符号?»和« 你应该总是对C中的数字使用’int’,即使它们是非负的吗? »这两个都提供以下示例: for( unsigned int i = foo.Length() – 1; i >= 0; –i ) {} 对我来说,这只是糟糕的设计。 当然,它可能会导致无限循环,无符号整数。 但是在循环之前检查foo.Length()是否为0是如此困难? 所以我个人认为这不是一直使用有符号整数的好理由。 有些人也可能会说有符号整数可能很有用,即使对于非负值,也可能提供错误标记,通常为-1 。 好吧,拥有一个特定值意味着“错误”是件好事。 但是,对于那个具体的价值,像UINT_MAX这样的东西有什么问题呢? 我实际上是在问这个问题,因为它可能会导致一些巨大的问题,通常在使用第三方库时。 在这种情况下,您经常需要处理有符号和无符号值。 大多数情况下,人们只是不关心签名,只是将一个unsigned int分配给signed int ,而不检查范围。 我不得不说我对编译器警告标志有点偏执 ,所以在我的设置中,这样的隐式转换将导致编译器错误。 对于那种东西,我通常使用函数或宏来检查范围,然后使用显式转换分配,如果需要则引发错误。 这对我来说似乎合乎逻辑。 作为最后一个例子,因为我也是Objective-C开发人员(请注意,此问题仅与Objective-C无关): – ( NSInteger )tableView: ( UITableView * )tableView numberOfRowsInSection: ( […]

C / C ++中的任意大小整数

题 有没有办法使用c / c ++创建任意大小的整数? 例如: int main(void) { Int i = Int(3); //3-bit integer i = 1; //Represented as: 001 } 奖金 有没有办法对浮动值做同样的事情?