Assigning value to a two-dimensional byte array - problem or not?

I am facing a really strange issue.
I have a 2D byte array of 10 rows and a byte array of some audio bytes:
byte[][] buf = new byte[10][];
byte[] a = ~ some bytes read from an audio streamWhen I assign like this:
for (int i=0; i<10; i++) {
    a = ~read some audio bytes // this method properly returns a byte[]
    buf[i] = a;
}the assignment is not working!!!
If I use this:
for (int i=0; i<10; i++) {
    a = ~read some audio bytes
    for (int j=0; j<a.length; j++) {
        buf[i][j] = a[j];
}or this:
for (int i=0; i<10; i++) {
    System.arraycopy(a, 0, buf, 0, a.length);
}everything works fine, which is really odd!!
I use this type of value assignment for the first time in byte arrays.
However, I never had the same problem with integers, where the problem does not appear:int[] a = new int[] {1, 2, 3, 4, 5};
int[][] b = new int[3][5];
for (int i=0; i<3; i++) {
b[i] = a;
// This works fineAnybody has a clue about what's happening?
Is it a Java issue or a programmers mistake?                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                       

Back again! I'm trying to track down the problem.
Here is most of my actual code to get a better idea.
private void test() {
     byte[][] buf1 = new byte[11][];
     byte[][] buf2 = new byte[11][];
     AudioInputStream audioInputStream = AudioSystem.getAudioInputStream(audioFile);
     byte[] audioBytes = new byte[100];
     int serialNumber = 0;
     while (audioInputStream.read(audioBytes) != -1) {
          if (serialNumber == 10) {
               serialNumber = 0; // breakpoint here for debugging
          // Fill buf1 -- working
          for (int i=0; i<audioBytes.length; i++) {
               buf1[serialNumber] = audioBytes[i];
          // Fill buf2 -- not working
          buf2[serialNumber] = new byte[audioBytes.length];
          buf2[serialNumber] = audioBytes;
          serialNumber++;
}I debugged the program, using a debug point after taking 10 "groups" of byte arrays (audioBytes) from the audio file.
The result (as also indicated later by the audio output) is this:
At the debug point the values of buf1's elements change in every loop, while buf2's remain unchanged, always having the initial value of audioBytes!
It's really strange and annoying. These are the debugging results for the  [first|http://eevoskos.googlepages.com/loop1.jpg] ,  [second|http://eevoskos.googlepages.com/loop2.jpg]  and  [third|http://eevoskos.googlepages.com/loop3.jpg]  loop.
I really can't see any mistake in the code.
Could it be a Netbeans 6.1 bug or something?
The problem appears both with jdk 5 or 6.                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                           

Similar Messages

  • Assigning value to a two dimensional array

    Hi,
    I am trying to assign value to a two dimesional array the following way.
    String [ ] [ ] d2D = new String [10] [ ];
    for (int i = 0; i<obj.length; i++){
    d2D = { "hello " + i, "here" , "we go" };
    but it gives me the error "illegal start of expression " pointing to the line in the loop assigning values to d2D[i].
    Any help would be deeply appreciated.

    You need to use the syntax for creating an anonymous array: new String[] {..., ...}
    String [ ] [ ] d2D = new String [10] [ ];
    for (int i = 0; i<obj.length; i++){
        d2D[ i ] = new String[] { "hello " + i, "here" , "we go" };
    }

  • Assigning values to 2D Multi-Dimensional arrays ??

    How do I assign a value to a Multi-dimensional 2D Array,
    that has the righter array size omitted as it changes�.
    Code�
    SomeObj foobar = new SomeObj (first, second);
    SomeObj [ ] [ ] d2D = new SomeObj [10] [ ];
    d2D [0][0] = foobar;     //Causes a null pointer exception�
    NB: seems if I initiate �d2D = new SomeObj [10] [10];� with the righter array size initiated then the error doesn�t occur, but because of the nature of the data the size of each secondary array varies�
    Thx. Kharsim

    apparently not...
    from what i read up on Multi-Dimensional arrays, you only have to give a value to the leftest bracket...
    e.g.
    int [ 5 ] [     ] [     ] <~ Acceptable in Java
    int [ 5 ] [  6 ] [     ] <~ Acceptable in Java
    int [ 5 ] [  6 ] [ 24 ] <~ Acceptable in Java
    int [ 5 ] [     ] [ 24 ] <~ Not acceptable in Java
    so using arrays it should be possible to assign a value in either of the acceptable cases, but couldnt find a source that had such an example...

  • Count the number of values in a two dimensional array

    i am trying to figure out how to count the number of values in a two dimensional array.
    numScores = student[i][j].length;This doesn't work, i am trying to find a way of counting the columns

    Object[][] o;
    int tot = 0;
    for(int x = 0 ; x < o.length ; x++)
       tot += o[x].length;
    }If it's not a jagged array, however, this would be easier:
    int tot = o.length * o[0].length;

  • Using two dimensional character array in a Jolt-Tuxedo call

    Hi,
    I have a Tuxedo service that returns a two dimensional character array as follows:
    char airports[234][3] ;
    There are 234 rows and each row is a character array of 3 characters.
    When I call this service using Jolt, how can I access these in the Java program
    Can the getStringDef or getStringItemDef be used by any chance ?
    Thanks
    Bala.

    Hello Bala,
    R u using FML Buffers or Views???
    regards
    MS

  • How to change the value of a two dimensional vector

    hi,
    I have a two dimensional array, Vector<Vector> myData, which contains strings. It's size is 5 rows and 6 columns
    I would like to change the value of, say, row 3, colum 5 from whatever it contains now to "new data"? I have searched and searched, but no luck
    thanks

    micheleg wrote:
    hi,
    I have a two dimensional array, Vector<Vector> myData, which contains strings. It's size is 5 rows and 6 columns
    I would like to change the value of, say, row 3, colum 5 from whatever it contains now to "new data"? I have searched and searched, but no luck
    thanksFirst off, you do not have an array of any dimension.You have a Vector that contains Vectors that contain Objects (you should provide a more specific type in your declaration).
    To change the element at position x in the y'th Vector, get the y'th Vector and change the x'th element in said Vector.
    As a side note, you should be using ArrayList instead of Vector these days.

  • Searching two dimensional string arrays

    Hello, I'm very new to Java. I would like some advice on the code below. What I'm trying to do is: I want the user to enter a 9 digit number which is already stored in an two dimensional array. The array is to be searched and the 9 digit number and corresponding name is to be printed and stored for future reference. Something is wrong with my array checking. If I enter the nine digit number, the program errors and asks me again for the number. If I enter 0-4, I receive an output. I just don't know how to compare string array values. Could someone please help me with this?
    import java.io.*;
    import java.util.*;
    public class SocialSn2
         public static void main(String args[]) throws Exception
              boolean validSSAN = false;
              Ssn(validSSAN);
              if (validSSAN)
                   //Ssn(false);//write the code here to continue processing
         }//end main
         public static void Ssn(boolean Validated)
              String[][] employees =
                   {{"333333333", "Jeff"},
                   {"222222222", "Keith"},
                   {"444444444", "Sally"},
                   {"555555555", "Kaylen"},
                   {"111111111", "Sheriden"}     };
              boolean found = false;
              while (!found)
                   System.out.println("Enter the employee's Social Security number.");
                   BufferedReader in = new BufferedReader(new InputStreamReader(System.in));
                   try
                        String line = in.readLine();
                        int input = Integer.parseInt(line); //added
                        found = false;
                        for(int j = 0; j < 5; j++)
                        if(input >= 0 && input <= employees.length)
                             //if(employees[j][0].equals(input))
                                  //System.out.println(employees[input][0] + employees[input][1]);
                                  found = true;
                             System.out.println(employees[input][0] + " " + employees[input][1]);
                   catch (Exception exc)
                        System.out.println("error");
                        found = false;
              Validated = found;
         }//end Ssn
    }//end class

    There seems to be some problem with your loop for checking those values
    if you had used System.err.println() in your catch block you would see that you were getting an ArrayIndexOutOfBoundsException
    The following works for me.
    import java.io.*;
    import java.util.*;
    public class SocialSn2
    public static void main(String args[]) throws Exception
    boolean validSSAN = false;
    Ssn(validSSAN);
    if (validSSAN)
    //Ssn(false);//write the code here to continue processing
    }//end main
    public static void Ssn(boolean Validated)
    String[][] employees =
    {{"333333333", "Jeff"},
    {"222222222", "Keith"},
    {"444444444", "Sally"},
    {"555555555", "Kaylen"},
    {"111111111", "Sheriden"} };
    boolean found = false;
    System.out.println(employees.length);
    System.out.println(employees[0].length);
    while (!found)
    System.out.println("Enter the employee's Social Security number.");
    BufferedReader in = new BufferedReader(new InputStreamReader(System.in));
    try
    String line = in.readLine();
    //int input = Integer.parseInt(line); //added
    found = false;
    for (int i=0; i< employees.length;i++)
         if(employees[0].equals(line))
         System.out.println(employees[i][0]+" "+employees[i][1]);
         found = true;
    catch (Exception exc)
    System.err.println(exc);
    found = false;
    Validated = found;
    }//end Ssn
    }//end class

  • How to extract one dimension out of a two dimensiona​l array

    Hello,
    May be this question is too naive and simple.I have a two dimensional array (two columns and 256 rows). All I want is to extract one of these columns as a separate one dimensional array. It seems like a very very basic task that any programming language should address. However, I could not find the right funciton in the array functions list. I am sure I am missing something very obvious. I tried index array, array subset, array to cluster and reshape array. None of them is the right function for this purpose. I have used LabVIEW for a quite a while now, but still I can not find a solution to this basic problem. Can someone help me out.
    Thanks
    Solved!
    Go to Solution.

    Hi -
    With the Index Array  function have you tried wiring a number to the input labeled index (col)?
    See the attached vi for an example.
    Attachments:
    array index1.vi ‏6 KB

  • Assigning Values from a file to an Array

    hey everyone I am working on a program that inputs values from a text file into an array i got the first array to work but the second array does not work. Please if you have a moment lend a hand. Here is my code. the program compiles fine but will not run right with the second array in it. The second array is called "B"
    import java.util.*;
    import java.io.*;
    import javax.swing.*;
    class algorithmAssignment1{
         public static void main (String[] args)throws IOException{
         int mark, counter, arrayAsize, mark2;
         counter=0;
         arrayAsize=100;
         int [] A= new int[arrayAsize];
         int [] B= new int[arrayAsize];
        String fileName = "arraynumbersa.txt";
        String value,value2;
        BufferedReader input;
        input = new BufferedReader (new FileReader (fileName));
        value = input.readLine ();
       while (value != null){
           mark = Integer.parseInt (value);
           A[counter]=mark;
           counter=counter+1;
           value = input.readLine ();
      /*  String fileName2 = "arraynumbersb.txt";
        BufferedReader input2;
        input2 = new BufferedReader (new FileReader (fileName2));
        value2 = input2.readLine ();     
         while (value2 != null){
           mark2 = Integer.parseInt (value2);
           B[counter]=mark2;
           counter=counter+1;
           value2 = input2.readLine ();
         bubbleSort(A,A.length);
         bubbleSort(B,B.length);
         System.out.println("Here is list A");
         for (int i = 0; i < A.length; i++){
             System.out.println( A[i] );
        System.out.println();
        System.out.println("Here is list B");
        for (int i=0;i<B.length;i++){
             System.out.println(B);
    /*change
    for (int i=0;i<A.length;i++){
         for (int j=0;j<B.length;j++){
              if (A[i]==B[j]){
                   System.out.println("Numbers that are in list A and B are "+ B[j]);
    static void bubbleSort(int numbers[], int array_size){
         int i, j, temp;
         for (i = (array_size - 1); i >= 0; i--)
         for (j = 1; j <= i; j++)
         if (numbers[j-1] > numbers[j]){
         temp = numbers[j-1];
                             numbers[j-1] = numbers[j];
                             numbers[j] = temp;

    Ok new problem now. I have to get the duplicates to go into a new array in order to display the duplicates. I can't figure out why it just lists the one duplicate but not the others.(It lists the final duplicate)
    Here is my code:
    import java.util.*;
    import java.io.*;
    import javax.swing.*;
    class algorithmAssignment1{
         public static void main (String[] args)throws IOException{
         int mark, counter, arrayAsize, mark2,counter2;
         counter=0;
         arrayAsize=100;
         counter2=0;
         int [] A= new int[arrayAsize];
         int [] B= new int[arrayAsize];
         int [] C=new int [arrayAsize];
        String fileName = "arraynumbersa.txt";
        String value,value2;
        BufferedReader input;
        input = new BufferedReader (new FileReader (fileName));
        value = input.readLine ();
       while (value != null){
           mark = Integer.parseInt (value);
           A[counter]=mark;
           counter=counter+1;
           value = input.readLine ();
        String fileName2 = "arraynumbersb.txt";
        BufferedReader input2;
        input2 = new BufferedReader (new FileReader (fileName2));
        value2 = input2.readLine ();     
         while (value2 != null){
           mark2 = Integer.parseInt (value2);
           B[counter2]=mark2;
           counter2=counter2+1;
           value2 = input2.readLine ();
         bubbleSort(A,A.length);
         bubbleSort(B,B.length);
         System.out.println("Here is list A");
         for (int i = 0; i < A.length; i++){
             System.out.println( A[i] );
        System.out.println();
        System.out.println("Here is list B");
        for (int i=0;i<B.length;i++){
             System.out.println(B);
    for (int i=0;i<A.length;i++){
         for (int j=0;j<B.length;j++){
              if (A[i]==B[j]){
                   for (int k=0;k<C.length;k++){
                        C[k]=(B[j]);
                   System.out.println("Here"+B[j]);
    System.out.println("Here are A and B");
    for (int i=0;i<C.length;i++){
         System.out.println(C[i]);
    static void bubbleSort(int numbers[], int array_size){
         int i, j, temp;
         for (i = (array_size - 1); i >= 0; i--)
         for (j = 1; j <= i; j++)
         if (numbers[j-1] > numbers[j]){
         temp = numbers[j-1];
                             numbers[j-1] = numbers[j];
                             numbers[j] = temp;

  • Sorting a two-dimensional integer array

    I have a 2-D array that looks simliar to this:
    1 0 0 0
    1 1 0 0
    2 0 0 0
    2 1 1 1
    1 2 1 0
    2 1 2 0
    3 1 1 1
    4 1 0 0
    2 1 1 2
    .I am trying to come up with an algorithm that will sort this array by the first column, then the second, then the third, then the fourth. But I'm stumped. The array above should look like this when sorted:
    1 0 0 0
    1 1 0 0
    1 2 1 0
    2 0 0 0
    2 1 1 1
    2 1 1 2
    2 1 2 0
    3 1 1 1
    4 1 0 0I've been able to sort 2-D arrays with only two columns, but this has been a new challenge for me. I've been able to come up with a brute force approach but it doesn't seem to work, nor is it very efficient. Any suggestions on how to approach this problem would be a great help.

    An 2-D array is simply an array of arrays, so you should be able to use a simple Comparator:
    class ArrayIntComparator implements Comparator
        public int compare(Object  o1, Object o2)
             int[] arr1 = (int[]) o1;
             int[] arr2 = (int[]) o2;
             for (int i=0; i<=arr1.length; ++i)
                if (arr1[i]  != arr2)
    return(arr2[i] - arr1[i]);
    return 0;
    int[][] arr2d = ...
    Arrays.sort(arr2d, new ArrayIntComparator());
    Didn't compile it, but it oughta give you a close start.

  • Byte array problem

    I Reading the Servlet request content in dopost() method into file, But i am obeseving my file is different if i sent 5 kb or more data my out put file become's leass in size always showing 3kb.
    Please Tell me where i am doing mistake
              File _file = null;
              BufferedOutputStream bufferedOutputStream = null ;
              InputStream _inputStream =request.getInputStream();
         try{               
              file= new File("E:"+File.separator+"TesttIn");               
              bufferedOutputStream = new BufferedOutputStream(new FileOutputStream(_file));
                   int Maxsize = 1*1024*1024;
                   byte [] buf = new byte[8192];
                   int count = _inputStream.read(buf);
                   while (count != -1)
                             if (count > 0)
                                  bufferedOutputStream.write(buf, 0, count);
                             count = _inputStream.read(buf);
              }catch(Exception exception){
                   _logger.error("Exception while Reading Client Data "+exception.getMessage());
                   response.sendError(HttpServletResponse.SC_REQUEST_TIMEOUT);
                   _file.delete();
                   return;
              }finally{
                   if(bufferedOutputStream!=null)bufferedOutputStream.close();
                   if(_inputStream!=null)_inputStream.close();
              }*/

    Except for some little style issues, I can't find anything wrong with your code;
    could you post the code that handles the sending part of the data?
    kind regards,
    Jos

  • OVS byte array problem

    Hi,
    I have created a custom controller that implements the functionality for OVS.
    The OVS retrieves a parameter called guid of the datatype byte[].
    I need to set this guid (from cust controller)to a context attribute called Elementid (on View) which is also of the same datatype i.e. byte[].
    The application throws an exception if the guid is a part of the OVSOutputNode.
    How can I set the guid to Elementid without having it on the OVSOutputNode?

    Hi,
    The sub node for guid is 1..1 and non-singleton.
    This is the code I use in applyResult() where I set the Elementname:
    applicationNodeElement.setAttributeValue("Elementname", queryOutputNodeElement.getAttributeAsText("Text1"));
    The code in the main controller, where I am trying to set the ElementId.
    if(wdContext.currentOVSBuckOutputElement() != null){               
                   wdContext.currentOrgaViewElement().setElementid(wdContext.currentOVSBuckOutputElement().nodeBuckGuid().currentBuckGuidElement().getGuid());               
    Can I set the Elementid in the applyResult() itself like Elementname, if so, how do I do it?

  • Sorting a two dimensional array in descending order..

    Guy's I'm a beginning Java programmer. I've been struggling with finding documentation on sorting a two dimensional primitive array in descending order.. The following is my code which goes works, in ascending order. How do I modify it to make the list write out in descending order?
    class EmployeeTable
         public static void main(String[] args)
         int[][] hours = {
              {2, 4, 3, 4, 5, 8, 8},
              {7, 3, 4, 3, 3, 4, 4},
              {3, 3, 4, 3, 3, 2, 2},
              {9, 3, 4, 7, 3, 4, 1},
              {3, 5, 4, 3, 6, 3, 8},
              {3, 4, 4, 6, 3, 4, 4},
              {3, 7, 4, 8, 3, 8, 4},
              {6, 3, 5, 9, 2, 7, 9}};
         int [] total = new int [hours.length];
         for (int i = 0; i < hours.length ; i++){
              for (int j = 0; j < hours.length ; j++){
                   total[i] += hours[i][j];
         int[] index = new int[hours.length];
         sortIndex(total, index);
    for (int i = 0; i < hours.length; i++)
    System.out.println("Employee " + index[i] + " hours are: " +
    total[i]);
    static void sortIndex(int[] list, int[] indexList) {
    int currentMax;
    int currentMaxIndex;
    for (int i = 0; i < indexList.length; i++)
    indexList[i] = i;
    for (int i = list.length - 1; i >= 1; i--) {
    currentMax = list[i];
    currentMaxIndex = i;
    for (int j = i - 1; j >= 0; j--) {
    if (currentMax < list[j]) {
    currentMax = list[j];
    currentMaxIndex = j;
    // How do I make it go in descending order????
    if (currentMaxIndex != i) {
    list[currentMaxIndex] = list[i];
    list[i] = currentMax;
    int temp = indexList[i];
    indexList[i] = indexList[currentMaxIndex];
    indexList[currentMaxIndex] = temp;

    Bodie21 wrote:
    nclow all you wrote was
    "This looks to me like a homework assignment that you're asking us to solve for you. Your description of what it does isn't even correct. It doesn't sort a 2d array.
    You would probably elicit better help if you could demonstrate that you've done some work and have something specific that you don't understand."
    To me that sounds completely sarcastic. You didn't mention anything constructive besides that.. Hence I called you a male phalic organ, not a rear exit...Bodie21, OK, now you've got 90% of us who regularly contribute to this forum thinking your the pr&#105;ck. Is that what you wanted to do? If so, mission accomplished. Many will be looking for your name next time you ask for help. Rude enough for you?

  • How to use my findTheHighest method to find the highest value in my two dim

    I am going to create a 13row by 10 colume two dimensional array.
    how to use my findTheHighest method to find the highest value in my two dimensional array.
    .When i compile this program , i got those as following;
    "Exception in thread "main" java.lang.ArrayIndexOutOfBoundsExce
    at TaxEvolution.findTheHighest(TaxEvolution.java:31)
    at TaxEvolutionClient.main(TaxEvolutionClient.java:25)"
    public class TaxEvolution{
    public double[][] salesTaxRates;
    public TaxEvolution()
      salesTaxRates = new double[13][10];
      fillProvinTaxRates();
    private void fillProvinTaxRates()
      for ( int row = 0; row < salesTaxRates.length; row++ )
        for ( int column = 0; column < salesTaxRates[row].length; column++ )
          salesTaxRates[row][column]= (int)(Math.random()*5000) + 1;
    public double findTheHighest()
        double highest = salesTaxRates[0][0];
        for ( int row = 0; row <= salesTaxRates.length; row++ )
          for ( int column = 0; column <= salesTaxRates[row].length; column++ )
             if ( salesTaxRates[row][column] >= highest )
                   highest = salesTaxRates[row][column];
        return highest;   
    public double[][] arrayTaxEvolution()
      double[][] returnTaxRates = new double[13][10];
      for ( int row = 0; row < salesTaxRates.length; row++ )
        for ( int column = 0; column < salesTaxRates[row].length; column++ )
          returnTaxRates = salesTaxRates;
      return returnTaxRates;
    public class TaxEvolutionClient{
    public static void main( String[] args ){
      TaxEvolution protaxRateList = new TaxEvolution();
      double[][] taxRateList = protaxRateList.arrayTaxEvolution();
        for ( int i = 0; i < taxRateList.length; i++ )
          for ( int j = 0; j < taxRateList[0].length; j++ )
            System.out.print( taxRateList[i][j] + "\t" );               
            System.out.print( protaxRateList.findTheHighest + "\t" );
    }

    Multiposted
    http://forum.java.sun.com/thread.jspa?threadID=699057&tstart=0

  • Assigning Value to Variable in Sapscript

    Hi,
    To initialized value of the variable when I tried to assign 0 to variable (like in the following statement) it comes up with error 'Command Expected'.
    &RF140-ZALBT&= '0'.
    Please let me know where and what I am doing wrong in assigning value to a variable?
    Regards,
    Shabbar

    Hi,
    Still its not working. The statement I am writing is
    /: &NET& = &RF140-WRSHB& - &RF140-MSATZ&
    but the system gives error on that.
    NET is the local variable declared with Define statement and both the others are defined in print program.
    Even I tried
    /: &RF140-ZALBT& = &RF140-WRSHB& - &RF140-MSATZ&
    but still the same error.
    Any comments?
    Regards,
    Shabbar

Maybe you are looking for

  • Site web analytics report shows no data

    Hi All,  A user reported that they could not view the site web analytics report in the SharePoint 2013 production server.  It was working fine a few couple of weeks back though. I started the troubleshooting for this issue and came cross a few blogs

  • MRP Area and SA Schedule Lines

    Hello All,     We are looking at using MRP Areas and noticed it can not be turned off once on (ECC 5.0).  Given that, is the following true with reference to schedule agreements: - Will seperate schedule lines be created for each MRP Area (same mater

  • What does the ac power cord hook up to?

    im a new mbp user. i recently got it. it came with the ac power cord and the ac plug. i know how to use the plug. but i dont know what the power cord goes to. help please? lol

  • Get the jndi names

    i have the next code for conect to one weblogic server. Properties p = new Properties(); p.put(Context.INITIAL_CONTEXT_FACTORY,"weblogic.jndi.T3InitialContextFactory"); p.put(Context.PROVIDER_URL, url); using the jndi name i can load the ejb but how

  • MIcronontrollers used in new NOKIA phones

    Hi All, We, at LUMS, are working over the upcoming 4th generation of mobile telephones. Can anyone please let me know, which microcontrollers are presently being used in the latest series of cell phones by nokia (like N-series). There are two microco