C++ :: Dealing With Signed / Unsigned Mismatch
Oct 18, 2014
There are many questions on the web on how to fix a specific signed/unsigned mismatch, and the solution is usually just making one variable unsigned.
I have a grid (x,y) which should be unsigned, since you can't have a (-5,-3) sized grid. However, I have a Direction object which should be signed, since I can have a (-1, -1) direction. The problem is when I do something like Location_x + Direction_x > grid_x which throws the signed/unsigned mismatch warning.
View 13 Replies
ADVERTISEMENT
Feb 17, 2013
I'm really brand new to C++ and I'm currently learning it for fun. I'm working on prototype functions, and I got an error.
I get an error saying “warning : '<' : signed/unsigned incompatibility” but I haven't defined an unsigned int anywhere. Actually, I don't even really know much about them except that they allow bytes from -127 to 127 instead of 0 to 256 for signed int's if I understood correctly...
The function itself is supposed to make a pointer go to the end of a string and add the Null Byte at the end. There's probably an already-existing way to do so, but I don't know it. Plus it is fun making this.
In the below code I'll be making comments for most lines so you may correct me if I'm not doing what I think I am. Any way, here's the code of my "my_fct.h" header file :
#include <stdio.h> //Includes basic functions necessary in C as 'scanf' or 'printf'.
#include <string.h> //Includes string functions such as 'strcpy' or 'strcmp'.
#include <iostream> //Not sure about what this does.
int strend(char[]); /* Specifies the existence of a function 'strend' that uses a char
* string as argument and that returns a value of integer type. */
[Code] ....
View 3 Replies
View Related
Apr 3, 2014
How can i write a function that will read an "unsigned integer" into a variable of type "unsigned short int"? i can not use cin >> inside the function.. so i am looking for atleast a hint!
View 16 Replies
View Related
Apr 20, 2013
I have an array of char pointers:
Code: char *input_args[MAX_ARGS];
And I have this function:
Code: BOOL parseArgs(char **input_args[], input arg_num);
I am trying to pass a pointer to this char pointer array like this:
Code: parseArgs(&input_args, args_num);
But the compiler is complaining:
Code: warning: passing argument 1 of 'parseArgs' from incompatible pointer type ...
note: expected 'char ***' but argument is of type 'char * (*)[20]'
Tried a bunch of stuff but nothing works.
View 4 Replies
View Related
Feb 12, 2013
I am firing an insert query like this in C# to MS ACCESS 07 Database
var expiry = dateTimePicker1.Text;
string instr = "insert into MST_QUOTATION values(";
instr += txtID.Text;
[Code]...
data type mismatch in criteria expression
View 2 Replies
View Related
Dec 26, 2013
I tried to write a little bit of code to set all bits within a signed int with exception to the MSB, yielding the greatest max positive value. The odd part is that it works for shorts ints, and longs, which are 2, 4 and 4 bytes respectively, however long longs, with a size of 8 bytes, simply yields -1, which would indicate that it failed to clear the MSB. Heres the little segment in question:
template<typename T>
T getMax() {
return my::numerics<T>::is_signed ?
~0 ^ (1 << ((sizeof(T)*8)-1) ):
~0;
}
my::numerics is just an exercise- its thoroughly tested and I'm certain thats not the issue.
For shorts, ints, longs, this yields the maximum value. However, when I use it on long longs, the output is 0xFFFFFFFFFFFFFFFF, i.e. ~0. Obviously this means the maximum value for unsigned long longs, but -1 for signed long longs.
View 2 Replies
View Related
Jul 17, 2012
I am using print/sprintf with a "%i" format string. Works fine if the input is indeed a 32bit integer. But how can i put in 8/16 bit (ie short & byte) 'integers'? If i just throw them in, they are always taken as unsigned, as the topmost bit/s is/are casted to zero... [URL] ....
View 3 Replies
View Related
Jan 29, 2015
Write a C++ application program to accept a signed decimal integer as input and output the equivalent 2s complement version in 16-bit binary. Include a space between every four bits in the output string. The input will only be processed by the application if it falls in the valid range that can be represented in 2s complement format with 16 bits. The range of a decimal number from - to + is -32768 to 32767.
View 3 Replies
View Related
Aug 20, 2014
So, I finally got translations for all the strings I'm using. However, depending on the language, the strings can exceed the space of the user controls, tabs, buttons, etc.. So in some parts, the words are either completely cut off or the word itself is cut off midway and finishes on another line.
I am wondering what is generally done about languages that use really long strings?
Should I reduce the font size or use multiline? Are there any best practices for this scenario?
This is for a WPF project.
View 5 Replies
View Related
Sep 9, 2013
I have a deck of 108 cards inside a 2D array and want to deal these card by 7 to 4 player. Each player had a id. The player and id are stored in a file while i've read in array each. Now I have to deal the cards.
Code:
struct card{
char color;
int rank;
char action[24];
char location[108]; Code: struct players{char name[10];
int id[5];
char hand;
};
View 2 Replies
View Related
Apr 16, 2014
I have a problem with pointer array, i passed a 2d array to a function but then i dont know how to make operations on it !!!
#include <iostream>
using namespace std;
int fun_name (int * arr) {
for (int i = 0;i< ??? ;i++) // how to compare while i don't know the size of array!!
[Code] ....
View 2 Replies
View Related
Aug 23, 2014
Say I have a class that requires dynamic allocation to implement a few of the operators. Take "+" for example; I need to create a new object to hold the sum of the two parameters whose size is not known at compile time.
I'm pretty sure the standard way to indicate a failure inside the overloading function would be to throw an exception. However I am currently involved in an embedded(ish) project where the spec. says no exceptions are to be used.
I think I have 2 options:
1. Return an "invalid" object (with a flag indicating an error has occurred) and check for this after each operation.
a = b + c
if (a.err)
// handle error
or
2. To forsake operator overloading entirely and think up a new way of doing things where all functions that involve dynamic allocation can return error codes. but this seems rather terrible too as I may end up with something like:
objA a
if (add(&a, b, c) == -1) // assuming b and c are initialized before this snippet starts
// handle error
Is there a number 3 that I haven't thought of? It seems that not allowing exceptions is fairly common even in the non-embedded world [URL] so how is this normally done? or is operator overloading usually avoided when exceptions are not allowed?
View 3 Replies
View Related
Jul 15, 2013
I have a problem in dealing with dynamic arrays. I have initialized the objects and now i want to print them.
Code: // main
char* namesList[] = {"Brad Shaw","Aimen Adams","Sal Dimitry","Cristi Anreaz","Poala James"};
int idList[]={232,444,135,52,134};
Team t1( namesList,idList,5,"waqas");
t1.Print_team(); My class Team looks something like this:
[Code] ....
The print function does not work. I have to implement the print function without taking any parameters.. How should i do that ?
View 9 Replies
View Related
Apr 2, 2014
My assignment is to create a program to print a deck of 52 cards, shuffle it, deal 2 hands of 5 cards, then print the deck after dealing the 2 hands with the cards that were dealt removed. this is my code so far...
#include <stdio.h>
#include <stdlib.h>
#include <time.h>
#define DECK_SIZE 52
void init_deck( int deck[] , int size ) ;
void shuffle_deck( int deck[] , int size ) ;
[Code] ....
I am having trouble dealing 2 random hands and how to print the deck with the cards removed.
View 3 Replies
View Related
Nov 9, 2014
I've written a simple program, which asks the user to respond to a YES or NO question using the character Y/y for YES and the character N/n for NO. The foundation of this program is based around several IF statements implemented to aid in finding the ASCII value of the character entered before invoking the corresponding cout statement that informs the user which character they entered. My Question: How should a program be written to deal with ignoring case sensitivity in regards to the users' input?
Here is my amateurish attempt,
Code:
#include <iostream>
using namespace std;
int main()
[Code] .....
The following are IF statements written for the program to determine whether the user answered YES or NO. The program then performs the cout statement that contains the corresponding character to the ASCII value found.
*/
if(user_input == 121 || user_input == 89)
{
if(user_input == 121)
{
cout << "
[code]......
View 2 Replies
View Related
Jul 6, 2014
error says "cannot convert 'int*' to 'int' in function main()
and also
type mismatch in parameter in function sort(int,int)
Heres the code:
#include<iostream.h>
#include<conio.h>
void main() {
void sort(int,int);
clrscr();
[Code] .....
View 11 Replies
View Related
Mar 30, 2014
unsigned char key[32];
139 unsigned char rfseed[32];
173 f = fopen("/dev/urandom","rb");
174 fread(key,1,32,f);
175 fread(rfseed,1,32,f);
I am having problems copying outputs of the above code into other unsigned char other[32]. I need to keep the output of dev/urandom for backup. But, when I try to assign the values by memcpy(other, key, 32), the values do not match. The same problem happens by assigning values index by index in a loop.
View 2 Replies
View Related
Mar 25, 2014
Is it really needed to specify 0 as an unsigned integer? I mean 0 is always 0 regardless it's signed or not, no? In the below example is the 0U really needed?
#include <stdio.h>
unsigned invert(unsigned x, int p, int n) {
return x ^ (~(~0U << n) << p);
}
int main(void) {
[Code]...
View 5 Replies
View Related
May 15, 2014
Consider this piece of code from the following website: [URL] .....
Code:
unsigned intx = 50;
x += (x << 2) + 1;
The website above says the following about the code:
Although this is a valid manipulation, the result of the shift depends on the underlying representation of the integer type and is consequently implementation-defined.
How exactly would a legal left shift operation on an unsigned integer result in implementation-defined behaviour?
View 5 Replies
View Related
Nov 10, 2014
I need to convert a string IP to an unsigned int (uint32), but however solutions I've found elsewhere have not worked (such as `atoi`).
When using `(uint32)"54.171.82.217 ";` : [URL] ....
When using `atoi("54.171.82.217");`: [URL] .....
How can I correctly convert the string version of the IP to the uint32 type?
View 1 Replies
View Related
Jan 26, 2014
I'm confused about the actual value of 8 bytes for unsigned integers.
The below code suggests the value is 13217906525252912201:
#include <stdio.h>
#include <inttypes.h>
typedef uint64_t byte_int_t;
int main(void){
byte_int_t t;
printf("%" PRIu64 "
", t);
}
./runprogram
13217906525252912201
However, when I use a calculator, I get a different value: 2^64= 1.8446744e+19
So I was wondering is this really 8 bytes? So I try below test and it produces 8, as expected:
#include <stdio.h>
#include <inttypes.h>
typedef uint64_t byte_int_t;
int main(void) {
byte_int_t t;
printf("%u
", sizeof(t));
return 0;
}
So why does C and my calculator provide two different results?
View 1 Replies
View Related
Apr 23, 2013
How do I print an unsigned char in c++? E.g.
unsigned char a[100] = "acdef";
wprintf(L"a is %u
", a);
wcout << "a is " << a << endl;
gives
a is 2880488
a is 002BF3E8
and not
a is acdef
a is acdef
??
what is the difference between unsigned char and char?
View 6 Replies
View Related
Aug 8, 2013
I have a double variable and depending on certain conditions I need to set certain bits of an unsigned short Variable. For example, if double var is odd I need to set the 15th bit of the unsigned short variable.
View 4 Replies
View Related
Jan 15, 2013
when you convert 1.7 to unsigned int, it becomes 1 or 2?
View 9 Replies
View Related
Oct 12, 2012
I've sometimes encountered unexpected runtime issues caused by unsigned values being decremented below zero.
Example 1: "unsigned_value += negative_integer_value;"
Example 2: "for( size_t i = size - 1; i >= 0; --i )"
My compiler doesn't provide any compile-time or run-time warnings.
As far as I know, it's not possible to overload operators of primitive data types to check if the unsigned value is decremented below zero.
Any clever strategy to trace such cases at debug runtime, without having to add asserts all over the code? It's important that it does not affect performance in release mode.
View 6 Replies
View Related
Feb 24, 2013
how is the best way to free unsigned pointer array allocated with cmallc?
Code:
uint8_t *buf;
buf = cs_calloc(ca->len + 13);
i do like this , but i know this is not quite right , since i got compile warning passing argument 1 of ‘free’ makes pointer from integer without a cast
Code:
for (i = 0; i < ca->len + 13; i++)
{
free(buf[i]);
buf[i] = NULL;
}
free(buf); do i need to free each element of array like above?
View 6 Replies
View Related